我正在为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对于搜索来说是未知/不重要的。多个控件可以包含针,因此我必须搜索整个列。
答案 0 :(得分:0)
要搜索具有特定值属性的元素,可以使用
$("[measureid='HeatLoad']");
它将返回具有属性&#39; measureid&#39;的所有元素。有价值的&#39; HeatLoad&#39;。