jQuery-从一个HTML字符串中,找到具有给定数据属性的所有元素
jQuery - from an HTML string, find all elements with a given data attribute
使用jQuery,我试图从服务器返回的HTML字符串中查找所有具有data-inject
属性的元素。下面是一个HTML字符串示例:
var html = '<div class="container-fluid">
<div class="row-fluid">
<div data-inject="ViewModel1" class="span12"></div>
</div>
</div>
<div data-inject="ViewModel2" class="navbar navbar-fixed-bottom"></div>';
我似乎找不到同时获得div
的方法,问题似乎是我从一个HTML字符串开始。
这里有一个fiddle显示了使用$('[data-inject]')
查询DOM就可以按预期返回这两个元素。但是,使用$('[data-inject]', html)
查询HTML字符串只返回一个元素(ViewModel1
元素)。
有人知道我做错了什么,以及如何得到预期的结果吗?
这是因为您没有根元素。只是在查询过程中临时使用wrapAll。
var html = '<div class="container-fluid"><div class="row-fluid"><div data-inject="TowerLogsViewModel" class="span12"></div></div></div><div data-inject="TowerLogFormViewModel" class="navbar navbar-fixed-bottom"></div>';
var $html = $(html);
$('[data-inject]', $html.wrapAll($('<div>')).parent()).each(function (ix, el) {
console.log($(el).data('inject'));
});
演示
由于集合中没有根元素,因此将从集合中的第一个元素(即<div class="container-fluid">
)中找到data-inject
,因此您只能得到一个。如果你使用过滤器,你将只得到另一个。因此,暂时将其包裹起来。
相关文章:
- 使用数据属性将HTML数据复制到另一个元素
- 使用jQuery获取第N个元素的数据属性值
- 按数据属性循环元素并替换值
- 选择数据属性日期值早于当前服务器日期的元素
- 将数据属性从锚点元素传递到jQuery函数
- 查找具有特定数据属性jQuery的元素
- 获取所有匹配元素的数据属性
- 使用jQuery,如何在元素上或元素内查找数据属性?(树遍历)
- 当通过Jquery data()附加时,以及当直接通过HTML中的数据属性附加时,检查HTML元素中的数据()
- 使用数据属性滚动到元素
- Javascript数据将元素属性绑定到URL中的锚href
- 通过特定的数据属性获取元素
- 获取 html 元素的点击事件的数据-* 属性
- 检索具有特定数据属性的祖先元素
- jQuery 查找没有数据属性的元素
- Meteor.js:如何检索事件对象的父元素的数据属性
- jQuery 选择器,用于通过比较元素的两个数据属性来选择元素
- 将从元素的数据属性获取的字符串转换为 json
- 如何将javascript对象或JSON存储在使用html5数据属性的html元素中
- 将信息存储在变量与数据属性元素中