获取当前子元素jquery / javascript

时间:2015-07-18 17:21:10

标签: javascript jquery

我想知道如何在循环多个元素时操纵具有某个类的父级的子跨度 结构看起来像这样



<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;
&#13;
&#13;

我目前有这个允许我更改div的文本而不是跨度的文本。如果有人出于说明原因告诉我如何使用jquery 常规javascript来改变跨度,这对我有很大的帮助,因为我遇到了很多循环。

&#13;
&#13;
$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;
&#13;
&#13;

2 个答案:

答案 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]);
});