2010-12-16 8 views
0

私はいくつかのHTMLを含む変数を持っています。このHTMLはドキュメント本体にはありません。これから、それぞれliの内容を抽出して配列に入れて、各リスト項目で何か新しいものを作ることができます。リスト項目をjavascript配列にするには

私はこれを行うことはできますか?

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

ありがとう!

答えて

1

あなたはダミー素子を作成し、HTML文字列としてその要素のinnerHTMLを設定することができますがあります。

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を通してループを実行して、実際の配列を作成することができます。

1

文字列にはgetElementByTagNameを使用できません...文書に挿入されたHTML要素でのみ使用できます。しかし、あなたが達成しようとしていることに対して、あなたは本当にそれをする必要はありません。余分な<li>を取り除くために

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

</li>あなたが行うことができます。

このような配列を生成します
var li = myList.match(/<li>.*?<\/li>/gi); 

:あなたはあなたの文字列からすべての<li> Sを抽出するために正規表現を使用することができますあなたが各項目をループしているときに文字列を置き換えます:

li[i].replace(/<\/?li>/gi, ""); 
関連する問題