Xui.js.children()替代方案

时间:2012-05-16 16:36:51

标签: javascript jquery xui

jQuery的.children()替代xui.js(或纯javascript)。

更具体地说,我正在尝试让$x(this)的孩子,但$x(this).children('p')不起作用(因为它似乎不存在于库中。它无法识别根据Firebug,它也不在xuijs docs中。

1 个答案:

答案 0 :(得分:1)

不确定该库,但如果您有本机DOM元素,则本机JS可能如下所示:

[].filter.call(this.children, function(el, i) { 
    return el.nodeName.toLowerCase() === 'p'; 
});

如果您支持旧版浏览器,则可以从MDN获取Array.prototype.filter的垫片。

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');

它只按标签名称进行过滤,但扩展它会很简单。