0

Web ページの要素の配列があり、それをいくつかの html に挿入しようとしており、変数として一致する配列項目に格納されています。例えば

<div class="play">
  <div>
    <p>Item to be inserted after this p tag</p>
  </div>
</div>

var elements = $('.play');
//elements length = 4;
var item = '<p>HTML to be inserted</p>'
$(item).appendTo(elements[1]);

上記のコードでは、html に表示されている子 div 内の配列の 2 番目の値に「item」を挿入しようとしていますが、それを子 div に挿入する方法がわかりません。現在、これは .play を含む親 html タグの後に「item」を挿入します。

どんな助けでも大歓迎です。

4

5 に答える 5

1

これは配列ではなく、jQuery オブジェクトであることに注意してください。つまりelements、jQuery メソッドを使用して DOM をトラバースできます。

elements.eq(1).find("div").append(item);

デモ: http://jsfiddle.net/rgQ7g/

.eq(1)2番目のアイテムを選択しますが、それを別のjQueryオブジェクトにラップして返すため、使用.find("div")して子divにアクセスし、それを使用でき.append()ますitem

于 2013-05-17T11:19:20.560 に答える
0

試してくださいafter()

$('.play').find('p').after(item);

これにより、DOM で選択された要素の後にコンテンツが挿入されます。また、名前が付けられたすべてのクラスに対しても実行します.play

インデックスを指定する必要がある場合は、次の関数をお勧めします。

function appendPlay(index, content) {
    $('.play').eq(index).find('p').after(content);        
}

appendPlay(2, '<p>HTML to be inserted</p>');

jsフィドル

于 2013-05-17T11:18:12.223 に答える
-1

使ってみてください

var element = $('.play div p');
var item = '<p>HTML to be inserted</p>'
$(element).parent().append(item);

から編集

var element = $('.play div');
var item = '<p>HTML to be inserted</p>'
$(element).append(item);
于 2013-05-17T11:16:44.827 に答える
-1

以下のリンクを使用できます。(コメント後にコードを編集しました)

次のようなコードを書く必要があります。

var selector = ".play",
    text = "<p>HTML to be inserted</p>";
$(selector + " div p").eq(1).after(text);

http://jsbin.com/esesul/5/

于 2013-05-17T11:21:56.787 に答える
-1

まあ、これはうまくいくと思います:

$(item).appendTo($(elements));

しかし、より良い解決策は次を使用することです:

$('.play').find('p').after(item);
于 2013-05-17T11:28:19.640 に答える