使用jQuery搜索字符串for substring的最快方法

时间:2014-10-21 03:06:28

标签: javascript jquery search

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

搜索扩展返回一个行索引数组,其中找到了匹配项。例如,[3,7,10,11]。搜索扩展程序最初支持完全匹配搜索,我必须修改:

if (val == sSearch)

为:

if (val.indexOf(sSearch) > 0)

我的自定义肯定是我遇到的性能问题的原因,但由于单元格的内容是动态更新的,因此无法进行精确匹配搜索,因此这是必要的。

干草堆示例:

<input id="_HeatOfRejection" class="form-control text-right text-box single-line" type="text" name="HeatOfRejection" measureid="HeatLoad" value="5000.0" uomid="MBH">

示例针:

' measureid=\"HeatLoad\" '

执行针搜索所需的平均时间约为17.5ms,并且由于内环包含~16种不同的针,外环导致内环的额外环路,因此处理时间过于明显。这并不可怕,但可能需要2-3秒。在这方面,这不是一个关键的功能。

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

1 个答案:

答案 0 :(得分:0)

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

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

它将返回具有属性&#39; measureid&#39;的所有元素。有价值的&#39; HeatLoad&#39;。

相关问题