我有一些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
。
由于
答案 0 :(得分:10)
如果我理解正确,你在字符串变量中有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();
答案 1 :(得分:0)
您可以执行以下操作:
var aID = $('div.message a.link').attr('id');
var aHREF = $('div.message a.link').attr('href');
答案 2 :(得分:0)
有一个jQuery插件(here)可用于将字符串解析为XML DOM,然后使用jQuery进行查询。它需要是XML,而不是您有时在HTML中看到的“宽松”类型的XML(即您需要围绕属性值引用)。
答案 3 :(得分:0)
如果您需要在结构中处理多个项目,可以执行此操作
$('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');
)};