jQuery - 更改内部<span name =“bar”>元素的文本

时间:2018-01-24 19:32:04

标签: javascript jquery

我有以下结构:

<div id="foo">
...
    <span name="bar">Lorem Ipsum</span>
    <span name="zzz">dolor sit amet</span>
...
</div>

鉴于我知道id的{​​{1}},如何更改<div>标记的文字<span>?请注意,可能有多个/不同的name=bar标记,每个标记一个<div>

我试过了:

<span name="bar">

缺少什么/错了?

2 个答案:

答案 0 :(得分:1)

span[@name='bar']不是有效的jQuery选择器。您需要span[name='bar'](删除@)。

// Notice the simplified/combined selector below
$("#foo span[name='bar']").text("Phasellus congue arcu turpis");

如果你有几个div需要修改,你应该使用一个类选择器(在下面的小提琴中演示)。

// jQuery class selector
$(".divsWithSpans span[name='bar']").text("Phasellus congue arcu turpis");

这里有a quick reference for selectorsa working fiddle

// ID selector
$("#foo span[name='bar']").text("Phasellus congue arcu turddpis");

 // Class selector
$(".divsWithSpans span[name='bar']").text("Phasellus congue arcu turpis");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!–– ID Selector ––>
<div id="foo">
  <span name="bar"></span>
</div>

<!–– Class selector ––>
<div class="divsWithSpans">
  <span name="bar"></span>
</div>
<div class="divsWithSpans">
  <span name="bar"></span>
</div>
<div class="divsWithSpans">
  <span name="bar"></span>
</div>
<div class="divsWithSpans">
  <span name="bar"></span>
</div>
<div class="divsWithSpans">
  <span name="bar"></span>
</div>

答案 1 :(得分:1)

正如你所说,div有几个span[name='bar']

  • 删除选择器中的@。

&#13;
&#13;
$("div").find("span[name='bar']").text("Phasellus congue arcu turpis");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="foo">

    <span name="bar">Lorem Ipsum</span><br>
    <span name="zzz">dolor sit amet</span>

</div>

<div id="nofoo">

    <span name="bar">Lorem Ipsum</span><br>
    <span name="zzz">dolor sit amet</span>

</div>
&#13;
&#13;
&#13;

希望有所帮助!

相关问题