如何将jQuery元素选择应用于字符串变量

时间:2010-03-11 00:24:16

标签: jquery jquery-selectors

我有一些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

由于

4 个答案:

答案 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'); 
)};