我有一个包含多个子节点的大型HTML字符串。
是否可以使用此字符串构造jQuery DOM对象?
我尝试过$(string)
,但它只返回一个包含所有单个节点的数组。
我试图获取一个可以使用.find()函数的元素。
发布于 2012-06-15 17:11:51
更新:
在HTML1.8中,我们可以使用$.parseHTML,它将把jQuery字符串解析为DOM节点数组。例如:
var dom_nodes = $($.parseHTML('<div><input type="text" value="val" /></div>'));
alert( dom_nodes.find('input').val() );
var string = '<div><input type="text" value="val" /></div>';
$('<div/>').html(string).contents();
这段代码中发生了什么:
$('<div/>')
是一个伪<div>
,它不存在于该伪string
内的<div>
追加<div>
中,因为DOM$('<div/>').html(string)
将该伪<div>
的子项作为jQuery object进行检索
如果你想让.find()
正常工作,那就试试这个:
var string = '<div><input type="text" value="val" /></div>',
object = $('<div/>').html(string).contents();
alert( object.find('input').val() );
发布于 2013-05-31 22:29:54
从jQuery 1.8开始,您可以只使用parseHtml来创建jQuery对象:
var myString = "<div>Some stuff<div>Some more stuff<span id='theAnswer'>The stuff I am looking for</span></div></div>";
var $jQueryObject = $($.parseHTML(myString));
我已经创建了一个演示这一点的JSFidle:http://jsfiddle.net/MCSyr/2/
它将任意的HTML字符串解析成一个jQuery对象,并使用find在div中显示结果。
发布于 2012-06-15 17:09:31
var jQueryObject = $('<div></div>').html( string ).children();
这将创建一个虚拟的jQuery对象,您可以将字符串放入其中。然后,你只得到孩子。
https://stackoverflow.com/questions/11047670
复制相似问题