Я имею некоторый HTML, извлеченный к строковому var, и хочу затем использовать выбор элемента jQuery только на той строке. Действительно ли это возможно?
Например:
HTML:
<div class=message>
This is a message. Click <a class=link id=link1 href=example.com>here</a>
</div>
jQuery:
$('div.message').each(function(i, item) {
myHtml = $(this).html();
//select <a> tag attributes here
)};
Таким образом в этом примере, я хочу извлечь id
и href
от <a>
тег в myHtml
.
Спасибо
Если я правильно понимаю, у вас есть HTML-код в строковой переменной, и вы хотите запросить в ней?
// Suppose you have your HTML in a variable str
var str = '<div class="message">This is a message. Click '
+ '<a class="link" id="link1" href="example.com">here</a></div>';
// You query the DOM fragment created by passing the string to jQuery function.
// $(<string>) - creates a DOM fragment (string must contain HTML)
var anchor = $('a', $(str));
// Then you can retrieve individual properties and/or contents:
var id = anchor.attr('id');
var href = anchor.attr('href');
var text = anchor.text();
Если вам нужно обработать несколько элементов в своей структуре, вы можете сделать это
$('div.message').each(function(i, item) {
// find desendant of the item using "find"
var alink = $(this).find('a.link');
// Process the item
var id = alink.attr('id');
var href = alink.attr('href');
)};
Существует плагин jQuery ( здесь ), который можно использовать для синтаксического анализа строка как XML DOM, а затем используйте jQuery для ее запроса. Это должен быть XML, а не «расслабленный» вид XML, который вы иногда видите в HTML (т.е. вам нужны кавычки вокруг значений атрибутов).
Вы можете сделать что-то вроде:
var aID = $('div.message a.link').attr('id');
var aHREF = $('div.message a.link').attr('href');