Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换“;查找“;在IE8中进行优化?_Javascript_Jquery_Html_Dom_Jquery Selectors - Fatal编程技术网

Javascript 替换“;查找“;在IE8中进行优化?

Javascript 替换“;查找“;在IE8中进行优化?,javascript,jquery,html,dom,jquery-selectors,Javascript,Jquery,Html,Dom,Jquery Selectors,我有一个递归jQuery函数,它有如下内容: parentItem.find('> div:first-child > span.c-checkbox > input[type="checkbox"]'); 这在Chrome、Firefox、Safari甚至IE9中运行得非常好。IE8及以下版本的速度非常慢(15秒以上) 我在一篇文章中发现IE8在“find”方面表现不佳:。我不太明白这个概念。有人能推荐一种方法让它在IE8中正常工作吗 编辑: 我在应用程序中尝试用此代码段替

我有一个递归jQuery函数,它有如下内容:

parentItem.find('> div:first-child > span.c-checkbox > input[type="checkbox"]');
这在Chrome、Firefox、Safari甚至IE9中运行得非常好。IE8及以下版本的速度非常慢(15秒以上)

我在一篇文章中发现IE8在“find”方面表现不佳:。我不太明白这个概念。有人能推荐一种方法让它在IE8中正常工作吗

编辑: 我在应用程序中尝试用此代码段替换代码段,我想我注意到了一个改进:

parentItem.children("div:first-child").children("span.c-checkbox").children("input[type=checkbox]")

选择器是否相同?是否有方法可以测量此值?

尝试减少find()中高级选择器的数量

试试这个:

parentItem.find('input:checkbox');

这不是查找问题,但您应该优化选择器表达式

最佳做法是使用
id
,使jQuery直接调用
document.getElementById
来选择节点

如果您使用诸如
$('.class')
$(input[name=somename])
之类的东西,则没有直接原始的javascript方法来执行此操作,jQuery将扫描所有节点以找到您想要的节点,这会导致性能问题

要解决问题,最好为元素指定一个id

或者


也许你可以粘贴你的HTML,这样我就可以为你编写更好的选择器:)

同意,这似乎是一个可怕的复杂选择器。如果需要,将类放在复选框上并直接选择它。或者更好的是,用一个Id代替。用“儿童”代替“查找”已经10秒了!