jQuery循环通过Child divs

lev*_*evi 9 html javascript each jquery loops

<div id="ChosenCategory" class="chosen">
   <div class="cat_ch" name="1">
   <div class="cat_ch" name="2">
   <div class="cat_ch" name="3">
   <div class="cat_ch" name="5">
   <div class="clear"> </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想循环div.cat_ch怎么样?

这个失败了:

    $("div").each(function () {
       alert("FW");
       alert($(this).attr("name").val());
    });
Run Code Online (Sandbox Code Playgroud)

Ort*_*iga 12

$('#ChosenCategory').children('.cat_ch').each(function() {

});
Run Code Online (Sandbox Code Playgroud)

要么

$('#ChosenCategory > .cat_ch').each(function() {

});
Run Code Online (Sandbox Code Playgroud)

JQuery的.children方法和css3子选择器>将仅返回.cat_ch与示例中的选择器类匹配的直接子节点.

如果要在DOM树中更深入地搜索,即包含嵌套元素,请使用.find或省略子选择器:

$('#ChosenCategory').find('.cat_ch').each( function(){} )
Run Code Online (Sandbox Code Playgroud)

要么

$('#ChosenCategory .cat_ch').each( function(){} )
Run Code Online (Sandbox Code Playgroud)


Shy*_*yju 5

$(function(){

    var items=$(".cat_ch")
     $.each(items,function (index,item) {

       alert($(item).attr("name"));
    });

});
Run Code Online (Sandbox Code Playgroud)

工作样本:http://jsfiddle.net/GzKHA/


scr*_*ola 4

http://jsfiddle.net/2TRxh/

我认为你的问题在于在获得 attribute 后尝试从 div 中获取 val $(this).attr("name").val()。在 div 上使用.val()没有意义。如果删除,$(this).attr("name")则会返回namediv 的属性。您可以通过使用 every 而不仅仅是 div 中的类选择器来进一步指定要循环的 div。$(".cat_ch").each(function () {});这已经在这个问题的其他各种答案中得到了体现。