我可以在没有附加到DOM的HTML字符串上使用jQuery选择器吗?
所以,如果我有一个像变量
var ht = "Paragraph Here
"
如果它附加到DOM我可以这样做以获取文本
$('p').text();
但是我可以对尚未附加到dom的变量进行相同的选择吗?
jQuery对象将获取HTML并将其转换为DOM结构以进行进一步查询,您可以直接传递它以创建对象,或者如果您只是想查询它,则将其用作上下文。
编辑:出于某种原因,似乎有必要将其包装在DIV中,如果在此示例中尚未包含在DIV中。 有关详细信息,请参阅有关此方法的jQuery对象文档 。
请参阅系统的测试框架: http : //jsfiddle.net/hUMqU/
var ht = "Paragraph Here
"; $('' + ht + '').find('p').text();
或作为背景:
var ht = "Paragraph Here
"; $('p', '' + ht + '').text();
没有神秘感。 选择
$('p')
选择文档的p
元素, 隐含的上下文 。
但是p
元素在:
var ht = "Paragraph Here
";
没有附加到文档(DOM),所以如果没有选择它们就没问题。
幸运的是, $()
函数有一个第二个参数,即上下文 ,必须在这里使用,如:
$('p', $(ht).context)
只需将HTML String包装到jQuery对象中,然后就可以从那里运行jQuery选择器:
var htmlString = "Paragraph Here
"; var elements = $(htmlString); var p = elements.filter('p').text(); console.log(p); //=> Paragraph Here
在这里工作演示 。