【问题标题】:jquery to traverse the div and get its span detailsjquery 遍历 div 并获取其跨度详细信息
【发布时间】:2011-03-25 09:29:21
【问题描述】:

我有一个html页面如下:

<div id="test1">
    <table>
        <tr>
            <td><span id="234">ABKO</span></td>
        </tr>
        <tr>
            <td><span id="1234">ABKO2</span></td>
        </tr>
        <tr>
            <td><span id="2634">ABKO3</span></td>
        </tr>
    </table>    
</div>
<div id="test2">
    <table>
        <tr>
            <td><span id="233">ABKOw</span></td>
        </tr>
        <tr>
            <td><span id="1236">ABKOc</span></td>
        </tr>
        <tr>
            <td><span id="2635">ABKOv</span></td>
        </tr>
    </table>    
</div>

如何获取使用 jQuery 之间的所有跨度详细信息? 例如,如果我首先考虑 div=test1 那么我想要所有带有 ID 和文本的 soan 作为 div -> 测试1 跨度 => id 233 && ABKO 跨度 => id 1234 && ABKO2 跨度 => id 22634 && ABKO3

【问题讨论】:

  • 以数字开头的 ID 不是有效的 HTML。它必须以字母开头。

标签: jquery


【解决方案1】:

您可以像这样遍历所有 &lt;span&gt; 元素:

$('div span').each(function(){
    var $span = $(this);

    var divId = $span.closest('div').attr('id');
    var spanId = $span.attr('id');
    var spanTxt = $span.text()

    // do something with the above
});

你可以看到in action here

这样做是构建一个嵌套在 div 中的 span 元素列表 (CSS selectordiv span)。然后它使用.each() 方法遍历这个列表。

在每次迭代中,$(this) 指的是匹配的 span 元素。我们在$span 变量中捕获了一个引用,因此我们不会一直重新创建相同的jQuery 对象。

然后我们使用.closest() 方法来查找与给定选择器(div)匹配的跨度的第一个祖先。这得到了我们的父 div。

最后.attr().text()得到了ID属性和文本值。

【讨论】:

    【解决方案2】:

    您可以通过 Id 找到具有 $('#test1') 之类的元素。您可以使用$('span')$('div') 按标签查找元素。

    如果要查找属于“test1”的所有跨度:

    $('#test1').find('span')

    $('#test1 span')

    您可以使用each() 遍历元素集合:

    $('#test1').find('span').each(function() { 
        var id = this.id;
        var value = $(this).html();
        // do whatever...
    });
    

    希望您可以自己解决剩下的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      • 2015-12-04
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多