2015-05-18 47 views
-1

例如,所有的ID和它們的值:顯示自字符串

var string = "<h1 id='data'>Blaa</h1> <h2 id='data2'>blaa</h2>"; 

使用JavaScript,我怎麼能提取標識和格式存在的值:

數據:Blaa 數據2:blaa

+0

你想提取這個從DOM附加元素,或從字符串? –

+0

我想從所有具有'id'屬性的標籤提取 – Qu3ntin0

+0

取決於您的字符串的約束,但我會從一個正則表達式開始 –

回答

1

我不知道這個問題的背景是什麼,或者你打算如何使用這些數據,但這裏的東西,我認爲做你問什麼,用香草的JavaScript。

JSFiddle

var string = "<h1 id='data'>Blaa</h1> <h2 id='data2'>blaa</h2>", 
    div = document.createElement('div'); 
div.innerHTML = string; 

var elements = div.getElementsByTagName('*'), 
    dataValues = {}, 
    i = 0; 
for (i; i < elements.length; i++) { 
    if (elements[i].id) { 
     dataValues[elements[i].id] = elements[i].innerHTML; 
    } 
} 
console.log(dataValues); 
+0

upvoted爲非JQuery解決方案並使用本地DOM解析器。 – KarelG

0

你可以用jQuery使用parseHTML函數解析html字符串:

http://api.jquery.com/jquery.parsehtml/

var str = "<h1 id='data'>Blaa</h1> <h2 id='data2'>blaa</h2>"; 
$.each($.parseHTML(str), function(i, el) { 
    if(!el.tagName) return; 
    var tagName = el.tagName.toLowerCase(); 
    if(tagName == 'h1' || tagName == 'h2') { 
     var id = el.id; 
     console.log(id + ':' + $(el).html()); 
    } 
}); 

http://jsfiddle.net/gao898r2/3/