2015-05-18 3 views
-1

Пример:Показать все идентификаторы и их значения из строки

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

Использование JavaScript, как можно извлечь идентификаторы и есть значения в формате:

данных: Blaa data2: 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

для решения без JQuery и использования собственного DOM-парсера. – KarelG

0

Вы можете разобрать HTML строки с помощью JQuery parseHTML функции:

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/