0

HTML を含む変数があります。この HTML はドキュメントの本文ではなく、変数にのみ含まれています。これから、それぞれの内容を抽出liして配列に入れ、各リスト項目で何か新しいものを作成できるようにします。

このようなことはできますか?

var myList = "<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>";
myList.getElementByTagName('LI') = myLiContents;

ご覧いただきありがとうございます。

4

2 に答える 2

1

ダミー要素を作成し、innerHTMLその要素の を HTML 文字列として設定できます。

var myList = "<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>",
    dummy = document.createElement('div');

dummy.innerHTML = myList;
console.log(dummy.getElementsByTagName('li'));

ただし、 の結果は配列ではなく、getElementsByTagName配列nodeListようなオブジェクトであることに注意してください。nodeListただし、実際の配列を作成するためにループを実行することはできます。

于 2010-12-16T03:52:26.083 に答える
1

文字列には使用できませんgetElementByTagName... ドキュメントに挿入された HTML 要素にのみ使用できます。しかし、あなたが達成しようとしていることについては、実際にそれを行う必要はありません。<li>正規表現を使用して、文字列からすべての を抽出できます。

var li = myList.match(/<li>.*?<\/li>/gi);

次のような配列が生成されます。

["<li>item 1</li>", "<li>item 2</li>", "<li>item 3</li>"]

<li>余分なものを取り除くには、</li>各項目をループするときに文字列の置換を行うことができます:

li[i].replace(/<\/?li>/gi, "");
于 2010-12-16T04:18:51.507 に答える