nar*_*rco 0 javascript epub getelementsbytagname ios
我想要一个能够获得所有非跨越元素的函数.
目前我已经创建了一个获取所有元素的函数,并且还创建了一个空数组.然后它遍历每个元素,如果它们不是跨距,则将它们添加到空数组中.并返回(可能不再为空)数组.
虽然这有效,但感觉有点低效.我觉得最好不要在第一时间获得跨度,并且必须有一些我不知道的方法.
有没有更有效的方法可以获得所有不跨越的元素?(这适用于iOS中UIWebViews中显示的epub,没有jquery)
这是我目前的代码.如果我做一些愚蠢的事情,我道歉,因为我不是一个javascript人:
function allElementsExceptSpans()
{
    var result = new Array();
    var allElements = document.getElementsByTagName('*');
    for (var i = 0; i < allElements.length; i++)
    {
        if ((allElements[i].tagName != "span")
            && (allElements[i].tagName != "SPAN"))
        {
            result.push(allElements[i]);
        }
    }
    return result;
}
querySelector和朋友接受一个CSS选择器作为他们的参数.
var not_span = document.querySelectorAll(":not(span)");
如果您想简化现有方法,那么您可以使用toLowerCase而Array.prototype.filter不是手动复制值来代替两个不同的字符串比较:
function allElementsExceptSpans()
{
    return Array.prototype.filter.call(document.getElementsByTagName("*"), function(element) {
        return element.tagName.toLowerCase() !== "span";
    });
}
| 归档时间: | 
 | 
| 查看次数: | 48 次 | 
| 最近记录: |