jQuery 的.children()
.
更具体地说,我正在尝试获取子级$x(this)
但$x(this).children('p')
不起作用(例如,它似乎不存在于库中。根据 Firebug 无法识别它,xuijs 文档中也没有)。
jQuery 的.children()
.
更具体地说,我正在尝试获取子级$x(this)
但$x(this).children('p')
不起作用(例如,它似乎不存在于库中。根据 Firebug 无法识别它,xuijs 文档中也没有)。
不确定那个库,但如果你有原生 DOM 元素,原生 JS 可能看起来像这样:
[].filter.call(this.children, function(el, i) {
return el.nodeName.toLowerCase() === 'p';
});
如果您支持旧版浏览器,您可以Array.prototype.filter
从 MDN 获得 shim。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter#Compatibility
你也可以轻松地创建一个可重用的函数。
function children(elem, s) {
return [].filter.call(elem.children, function(el, i) {
return el.nodeType === 1 && (!s || el.nodeName.toLowerCase() === s);
});
}
children(this, 'p');
它仅按标签名称过滤,但扩展它很简单。