1

jqueryを使用して最初のクローンリストをキャプチャする方法は?

<ul id=testList>
    <li><input type=checkbox" /><p> Test A </p></li>
    <li><input type=checkbox" /><p> Test B </p></li>
    <li><input type=checkbox" /><p> Test C </p></li>
    <li><input type=checkbox" /><p> Test D </p></li>
    <li><input type=checkbox" /><p> Test E </p></li>
</ul>

私の試み:

var firstClonedList = $("#testList li:eq(0)").clone();
alert(firstClonedList.html());

問題:アラートが表示されています:

<input type=checkbox" /><p> Test A </p> 

正しく表示されますが、アラートを表示する必要があります。

<li><input type=checkbox" /><p> Test A </p></li>
4

5 に答える 5

2

これを試して

var firstClonedList = $("#testList li:eq(0)").clone();
alert($('<div/>').append(firstClonedList).html());​​​​​​​​

divのラッパーとしてを作成し、liを呼び出すだけhtml()ですdiv

ここでの実例

于 2012-04-05T16:09:24.003 に答える
2

あなたはouterHTML機能が必要です。

jQuery.fn.outerHTML = function() {
  return $( $('<div></div>').html(this.clone()) ).html();
}

これで、outerHTMLをどこでも使用できます

alert(firstClonedList.outerHTML());あなたが欲しいものを表示します。

于 2012-04-05T16:11:03.483 に答える
1

このhtmlメソッドはinnerHTML、要素のプロパティを取得します。あなたはプロパティが欲しいですouterHTML

firstClonedList.prop('outerHTML');

ただし、このソリューションには、特にFirefoxに関連する、ブラウザ間の問題がいくつかある可能性があります。詳細については、 MDNを参照してください。

于 2012-04-05T16:11:52.920 に答える
0

lihtml表現がである要素を正しく取得しています

<li><input type=checkbox" /><p> Test A </p></li>

html全体を返すことを期待していますが、要素elem.html()内の内部htmlを返します。li

jqueryドキュメントから

このメソッドは、ブラウザのinnerHTMLプロパティを使用します。一部のブラウザは、元のドキュメントのHTMLソースを正確に複製するHTMLを返さない場合があります。たとえば、Internet Explorerでは、属性値に英数字のみが含まれている場合、属性値の前後の引用符が省略されることがあります。

要素のソースhtml全体を取得するには、それを別の要素に挿入してから、その要素のhtmlを取得します。

alert($("<div>").append(firstClonedList).html())​

ここで実際の動作を確認してください

于 2012-04-05T16:09:36.890 に答える
0

変数firstClonedListリストには必要なものが含まれていますが、追加することにより.html()、firstClonedListのhtmlコンテンツを提供するように求められます。したがって、firstClonedList[0]を使用するだけです。

var firstClonedList = $("#testList li:first").clone();
console.log(firstClonedList[0]);

</ p>

于 2012-04-05T16:19:35.223 に答える