我有以下结构:
<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">
缺少什么/错了?
答案 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 selectors和a 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']
。
$("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;
希望有所帮助!