一尘不染

从大HTML字符串创建jQuery对象

html

我有一个包含多个子节点的大HTML字符串。

是否可以使用此字符串构造 jQuery DOM对象?

我试过了,$(string)但它只返回一个包含所有单个节点的数组。

试图获得一个我可以使用.find()函数的元素。


阅读 404

收藏
2020-05-10

共1个答案

一尘不染

更新:

从jQuery 1.8开始,我们可以使用$.parseHTML,它将HTML字符串解析为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>DOM中不存在的伪造品
  • $('<div/>').html(string)作为孩子string在假货中附加<div>
  • .contents()检索该假<div>对象的子代作为jQuery对象

如果您想.find()工作,请尝试以下操作:

var string = '<div><input type="text" value="val" /></div>',
    object = $('<div/>').html(string).contents();

alert( object.find('input').val() );
2020-05-10