Javascript 获取所有不是跨度的图元
我想要一个函数,它可以获取所有不是跨度的元素 目前,我已经创建了一个获取所有元素的函数,还创建了一个空数组。然后它遍历每个元素,如果它们不是跨度,则将它们添加到空数组中。并返回(可能不再为空)数组 虽然这样做有效,但感觉有点低效。我觉得最好一开始就不要做跨距,肯定有什么方法我不知道 是否有更有效的方法可以获取所有非跨度元素?(这适用于iOS中UIWebView中显示的ePub,无jquery) 这是我目前的代码。如果我做了一些愚蠢的事情,我道歉,因为我不是javascript爱好者:Javascript 获取所有不是跨度的图元,javascript,ios,epub,getelementsbytagname,Javascript,Ios,Epub,Getelementsbytagname,我想要一个函数,它可以获取所有不是跨度的元素 目前,我已经创建了一个获取所有元素的函数,还创建了一个空数组。然后它遍历每个元素,如果它们不是跨度,则将它们添加到空数组中。并返回(可能不再为空)数组 虽然这样做有效,但感觉有点低效。我觉得最好一开始就不要做跨距,肯定有什么方法我不知道 是否有更有效的方法可以获取所有非跨度元素?(这适用于iOS中UIWebView中显示的ePub,无jquery) 这是我目前的代码。如果我做了一些愚蠢的事情,我道歉,因为我不是javascript爱好者: funct
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;
}
函数等位基因sexceptspans()
{
var result=新数组();
var-allegements=document.getElementsByTagName('*');
对于(var i=0;i
并接受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";
});
}
并接受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";
});
}
前提是您的浏览器支持
:而不是,这是CSS3的功能。例如,IE8没有,但IE8仍然拥有令人惊讶的市场份额。(IE8是新的IE6!但希望不会太久。)幸福是一个客户,他不在乎IE8中的事情是否看起来不好:)谢谢,嗯,有些事情我不知道!这种方法(如本文所述)会漏掉大写跨距吗?@narco-HTML元素名称不区分大小写。除非您正在编写XHTML,否则这不会是一个问题(这对绝大多数应用程序来说都是一个毫无意义的痛苦练习)。我应该提出最初的问题,这只适用于iOS中的UIWebViews,所以没有IE。从我目前的快速测试来看,这种方法似乎有效。如果您的浏览器支持:而不是,这是一个CSS3的东西。例如,IE8没有,但IE8仍然拥有令人惊讶的市场份额。(IE8是新的IE6!但希望不会太久。)幸福是一个客户,他不在乎IE8中的事情是否看起来不好:)谢谢,嗯,有些事情我不知道!这种方法(如本文所述)会漏掉大写跨距吗?@narco-HTML元素名称不区分大小写。除非您正在编写XHTML,否则这不会是一个问题(这对绝大多数应用程序来说是一个毫无意义的痛苦练习)。我应该提出最初的问题,这只适用于iOS中的UIWebViews,所以没有IE。从我目前的快速测试来看,这种方法似乎有效。