Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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 使用jQuery在字符串中搜索子字符串的最快方法_Javascript_Jquery_Search - Fatal编程技术网

Javascript 使用jQuery在字符串中搜索子字符串的最快方法

Javascript 使用jQuery在字符串中搜索子字符串的最快方法,javascript,jquery,search,Javascript,Jquery,Search,我正在使用用于jQuery的DataTables插件。在DataTable中,我有大约16个tr行,每个行有4个td列。DataTables插件提供了一个API扩展,允许在表的所有单元格或指定列的所有单元格中搜索字符串 搜索扩展返回找到匹配项的行索引数组。例如,[3,7,10,11]。搜索扩展最初支持精确匹配搜索,我必须从以下位置进行修改: if (val == sSearch) 致: 我的定制当然是造成性能问题的原因,但这是必要的,因为单元格的内容是动态更新的,因此执行精确匹配搜索时不可预测

我正在使用用于jQuery的DataTables插件。在DataTable中,我有大约16个tr行,每个行有4个td列。DataTables插件提供了一个API扩展,允许在表的所有单元格或指定列的所有单元格中搜索字符串

搜索扩展返回找到匹配项的行索引数组。例如,[3,7,10,11]。搜索扩展最初支持精确匹配搜索,我必须从以下位置进行修改:

if (val == sSearch)
致:

我的定制当然是造成性能问题的原因,但这是必要的,因为单元格的内容是动态更新的,因此执行精确匹配搜索时不可预测

干草堆的一个例子:

<input id="_HeatOfRejection" class="form-control text-right text-box single-line" type="text" name="HeatOfRejection" measureid="HeatLoad" value="5000.0" uomid="MBH">
执行针搜索所需的平均时间约为17.5ms,由于内环包含约16个不同的针,而外环会导致内环的附加环,因此处理时间太长。这并不可怕,但可能需要2-3秒。在这方面,这不是一个关键的功能


我想知道的是,是否有比使用indexOf更快的方法来执行此搜索。使用jQuery选择器可能更快,但id对于搜索来说是未知的/不重要的。多个控件可以包含指针,因此我必须搜索整个列。

要搜索具有特定值属性的元素,可以使用

$("[measureid='HeatLoad']");

它将返回所有属性为“measureid”且值为“HeatLoad”的元素。

是否搜索元素属性匹配$[measureid=HeatLoad]?据我所知,indexOf是浏览器javascript引擎的本机实现,javascript函数不能比这快。性能问题很可能是由脚本的其他部分引起的,我们对此没有太多的可见性。如果你能提供一个简单的例子来显示你的问题,这样其他人就可以随意摆弄并尝试帮助你,那就更好了you@MJ,我理解你为什么提供这个解决方案。我需要包含匹配measureid的表行的索引。有多行具有匹配的measureid。使用一个选择器肯定会加速事情的发展,我已经考虑过如何做到这一点。我只是想我可能可以接受它的方式,并想知道是否有一个更快的函数可以indexOf。@rwkii:是的,使用此选择器,您可以使所有元素满足选择条件,但如果您需要索引,那么这将不起作用。
' measureid=\"HeatLoad\" '
$("[measureid='HeatLoad']");