1

jquery の .eq() 関数を使用して div の子にアクセスしようとしていますが、実際にはエラーがスローされていないにもかかわらず、何かが間違っているように見えます。目的の子 div 要素に .innerHTML を実行すると、何も起こりません。

これは私のHTMLです:

<div id="status_container">
    <div class="status_item_wrapper">
        <div class="status_item_title">
            <span>TITLE 1</span>
        </div>
        <div class="status_item_content">
            <table id="box-table"></table>
        </div>
    </div>
    <div class="status_item_wrapper">
        <div class="status_item_title">
            <span>TITLE 2</span>
        </div>
        <div class="status_item_content">
            <table id="box-table"></table>
        </div>
    </div>
</div>

そして、これは私のjavascriptです:

function doSomething(message) {
     var data = message.data;
     var index_container = 0;

     var container = $("#status_container").eq(0);
     var content_wrapper = container.eq(1); // this would be the content div of each child
     content_wrapper.html(JSON.stringify(data));
}

これで「TITLE 1」の status_item_wrapper div が取得され、content_wrapper に「status_item_content」オブジェクトが含まれると思いました。

最初の親「status_container」から「status_item_content」divに到達するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

2

content_wrapperはjQueryオブジェクトであり、それがeq()返されるものであり、innerHTMLメソッドを持たないため、jQueryのを使用する必要がありますhtml():

content_wrapper.html( JSON.stringify(data) );

代わりにネイティブ DOM 要素を返すにはget()、 と doを使用できます。

var content_wrapper = container.get(1);
content_wrapper.innerHTML = JSON.stringify(data);

編集:

を追加containerしたので、いくつかの問題があります。eq()ゼロベースのインデックスに基づいて要素のコレクション内の特定の要素を取得し、ID をセレクターとして使用しているため、ID は一意であるため、実際にはコレクションは存在しないはずであり、1 つの要素のみを選択する必要があります。 .

#status_container要素内の 2 番目の子を選択しようとしている場合は、次のようにします。

 var content_wrapper = $("#status_container").children().eq(1);
于 2013-05-14T15:25:55.273 に答える