10
<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>

どのようにループしたいですdiv.cat_chか?

これは失敗します:

    $("div").each(function () {
       alert("FW");
       alert($(this).attr("name").val());
    });
4

8 に答える 8

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

});

または

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

});

JQueryの.childrenメソッドとcss3子セレクター>は、セレクター(例ではクラス.cat_ch)に一致する直接の子のみを返します。

DOMツリーをさらに深く検索する場合、つまりネストされた要素を含める.find場合は、子セレクターを使用または省略します。

$('#ChosenCategory').find('.cat_ch').each( function(){} )

または

$('#ChosenCategory .cat_ch').each( function(){} )
于 2012-07-23T19:57:57.487 に答える
7
$(function(){

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

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

});

作業サンプル: http: //jsfiddle.net/GzKHA/

于 2012-07-23T20:04:57.857 に答える
4

内部のDivのみをターゲットにする場合は、

$('#ChosenCategory div').each( function() {...} );

他の回答は特定のクラスを必要とし、および/または親div内の非divも処理します。

于 2012-07-23T20:00:08.433 に答える
4

http://jsfiddle.net/2TRxh/

あなたの問題は、属性を取得した後にvalをdivから取得しようとすることにあると思います$(this).attr("name").val()。divで使用.val()しても意味がありません。削除すると、プロパティがdivから$(this).attr("name")返されます。namedivだけでなく、それぞれのクラスセレクターを使用して、ループするdivをさらに指定できます。$(".cat_ch").each(function () {});これは、この質問に対する他のさまざまな回答で示されています。

于 2012-07-23T20:10:48.000 に答える
2
    関数loopOver(obj)
    {{
        var chl = obj.firstChild;
        while(chl)
        {{
            if(chl.nodeType == 1)
            {{
                var isAttr = chl.getAttribute('name');
                if(isAttr)
                {{
                    alert(isAttr);
                }
            }
            chl = chl.nextSibling;
        }
    }

    //これは実行速度の点で群を抜いて最速です!!!
    var obj = document.getElementById( "ChosenCategory");
    loopOver(obj);
    
Make sure to enclose the each `<div>` tag at the end of each!!
于 2012-07-23T20:24:45.623 に答える
1
$(".cat_ch").each(function () {
       alert("FW");
       alert($(this).attr("name").val());
    });
于 2012-07-23T19:57:05.623 に答える
1

ループスルーするdiv.cat_ch場合は、jQueryセレクターに使用する必要があります。

$("div.cat_ch").each(function () {
   alert("FW");
   alert($(this).attr("name").val());
});

jQuerychildren()メソッドを使用して、子要素をループすることもできます。

$("#ChosenCategory").children().each(function () {
   alert("FW");
   alert($(this).attr("name").val());
});

目的の要素をループする3番目の方法は、次のようになります。

$("#ChosenCategory > div").each(function () {
   alert("FW");
   alert($(this).attr("name").val());
});

どちらの方法でも使用できますが、最善の方法はありません。

于 2012-07-23T19:57:19.577 に答える
1
$('.cat_ch').each(function(i, e) {
    alert('FW');
    alert(e.attr('name').val());
});
于 2012-07-23T19:59:55.873 に答える