0

jQuery 的.children().

更具体地说,我正在尝试获取子级$x(this)$x(this).children('p')不起作用(例如,它似乎不存在于库中。根据 Firebug 无法识别它,xuijs 文档中也没有)。

4

1 回答 1

1

不确定那个库,但如果你有原生 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');

它仅按标签名称过滤,但扩展它很简单。

于 2012-05-16T16:49:11.720 回答