【问题标题】:How to change the text only in HTML when element has child element and using JQuery?当元素具有子元素并使用 JQuery 时,如何仅在 HTML 中更改文本?
【发布时间】:2012-05-08 13:07:37
【问题描述】:

对于以下代码:

<div myLable="a"><p><span style="color:#00aaFF">change me only 1</span></p></div>
<div myLable="b"><span style="color:#00aaFF">change me only 2</span></div>

如果我使用

$('div[myLable="a"]').text("change");
$('div[myLable="b"]').text("change");

那里面的html代码全部改了,不是我需要的。

注意有两个前置条件:

  1. 子元素中没有任何标签或 ID。
  2. 我们不知道子元素有多深,可以得出的结论是要求改变最深的子元素的文本。
  3. 如果在解决方案中使用原始 javascript 会很好,但必须使用 $('div[myLable="a"]') 表单,因为父元素没有 id 而只有一个用户定义的标签,所以我需要这个 Jquery 表单。

只有在这种情况下我才能更改文本?

提前致谢,

哇

【问题讨论】:

  • 如果您知道您的文本将始终包含在 span 中,那么将特定的 class 指定给 span 并更改其中的文本。
  • 谢谢,对不起,我是新来的,不知道接受答案,从现在开始接受有效的答案。

标签: javascript jquery html


【解决方案1】:

您需要更改span 中的文本。因此,请使用适当的选择器指向 @987654322 @:

$('div[myLable="a"] span').text("change");

【讨论】:

    【解决方案2】:
    var $target = $('div[myLable="a"]').children();
    $next = $target;
    
    while( $next.length ) {
      $target = $next;
      $next = $next.children();
    }
    
    $target.text("change");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      相关资源
      最近更新 更多