我想知道如何在循环多个元素时操纵具有某个类的父级的子跨度 结构看起来像这样
<div class="parent">
<span>i want to change this text (uniquely) per item</div>
</div>
<div class="parent">
<span>i want to change this text (uniquely) per item</div>
</div>
<div class="parent">
<span>i want to change this text (uniquely) per item</div>
</div>
&#13;
我目前有这个允许我更改div的文本而不是跨度的文本。如果有人出于说明原因告诉我如何使用jquery 和 常规javascript来改变跨度,这对我有很大的帮助,因为我遇到了很多循环。
$j = jQuery.noConflict();
var somearray = [400,600];
$j('.parent').each(function() {
num = this.getAttribute('data-rowid');
span = this.getElementsByClassName('parent');// <--- i want to know how to select the current span with jquery and regular javascript
$j(span).text(somearray[num]);
});
&#13;
答案 0 :(得分:1)
您正在寻找find
:
var span = $j(this).find("span");
或使用特定的 HTML,您可以使用.children().first()
:
var span = $j(this).children().first();
......但是这很脆弱,如果你在跨度之前添加一些内容就会中断。
附注:请注意,我添加了var
,因此我们声明span
。没有它,你就不会因为没有声明你的变量而成为The Horror of Implicit Globals的牺牲品。您还要声明num
。
答案 1 :(得分:1)
这样的事情应该有效
$j = jQuery.noConflict();
var somearray = [400,600];
$j('.parent').each(function() {
var num = $j(this).attr('data-rowid');
$j(this).find('span').text(somearray[num]);
});