jqueryを使用して子divのIDを取得しますか?

javascript jquery jquery-selectors php
jqueryを使用して子divのIDを取得しますか?

以下のコードをご覧ください。

                Save




        Block 1



                Item 1

                Item 2

                Item 3



        Block 2



                Item 4

                Item 5

                Item 6





    $("#click_me").click(function() {
            var result = $("#blocks_sortable > div");

            for(var i=0; i<result.length; i++){
                var str = "";
                var str2 = "";
                var block = result[i]; //div object

                //retrieve block id and create the string with id
                str += "block="+$(block).attr("id")+"&items=";

                //trying to select all the items of the current Block
                var result2 = $(block+" > div");
                    for(var j=0; j<result2.length; j++){
                        var item = result2[j];

                        str2 += $(item).attr("id")+",";
                    } //end for items

                str = str+str2;
                // looking for a final string in the format of .. block=block_1&items=item_1,item_2,item_3 for loop 1
                alert(str);
            }
    });

動作していません。 これらのIDを取得するための簡単で実用的なソリューションはありますか? 助けてください。

ありがとうございました。

  0  0


ベストアンサー

jQuery map関数はあなたの友達です

$.map(
    $("#blocks_sortable > div"),
    function(elementOfArray){
        var block = $(elementOfArray);
        var children = $.map(
            $("div[id]", block),
            function( eoa ){
                return eoa.id;
            }).join(",");

        return elementOfArray.id + "=" + children;
    }
).join(",");

`” block_1 = item_1、item_2、item_3、block_2 = item_4、item_5、item_6 “`を返します。これにより、目的地にずっと近づきます(私は思う)。

編集: http://jsbin.com/ofopi3/ [ソリューション]およびhttp://jsbin.com/ofopi3/edit [ソース]こちら。

2


`str + =” block = “+ $(block).attr(” id “)+”&items = “;`を呼び出すとエラーが発生すると思います

attr is not working because block is a dom element and not a jquery

オブジェクト var itemでも同じ問題が発生しています。

実用的なソリューションはhttp://jsbin.com/itexo/edit [こちら]です。 そして、デモはhttp://jsbin.com/itexo [こちら]です。

このjavascriptはそれを修正します:

   $("#click_me").click(function() {
            var result = $("#blocks_sortable > div");

            for(var i=0; i div > div");
                    for(var j=0; j

1


    $("#click_me").click(function() {
        var result = $("#blocks_sortable > div");

        for(var i=0; i div";
            var result2 = $(inner_span).children();

                for(var j=0; j

0


「>」なしで試してください

var result = $("#blocks_sortable div");

-1


タイトルとURLをコピーしました