首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从一个大的HTML-string创建jQuery对象

从一个大的HTML-string创建jQuery对象
EN

Stack Overflow用户
提问于 2012-06-15 17:07:04
回答 7查看 153K关注 0票数 153

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

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

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

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

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-06-15 17:11:51

更新:

在HTML1.8中,我们可以使用$.parseHTML,它将把jQuery字符串解析为DOM节点数组。例如:

代码语言:javascript
复制
var dom_nodes = $($.parseHTML('<div><input type="text" value="val" /></div>'));

alert( dom_nodes.find('input').val() );

代码语言:javascript
复制
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()正常工作,那就试试这个:

代码语言:javascript
复制
var string = '<div><input type="text" value="val" /></div>',
    object = $('<div/>').html(string).contents();

alert( object.find('input').val() );
票数 224
EN

Stack Overflow用户

发布于 2013-05-31 22:29:54

从jQuery 1.8开始,您可以只使用parseHtml来创建jQuery对象:

代码语言:javascript
复制
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中显示结果。

票数 123
EN

Stack Overflow用户

发布于 2012-06-15 17:09:31

代码语言:javascript
复制
var jQueryObject = $('<div></div>').html( string ).children();

这将创建一个虚拟的jQuery对象,您可以将字符串放入其中。然后,你只得到孩子。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11047670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档