Definitive indexOf instead of option:contains



例如,是否有一个jQuery选择器可以将:contains替换为更明确的indexOf?我正在尝试匹配可变VALUE_XYZ

问题是代码在到达精确值之前会找到相似的字符串(因为它包含字符串(。

var value= $("select[name=BU_CT_NUM_DOC]").find('option:contains($VALUE_XYZ)').val();

整个代码如下所示,由 xslt 封装:

<xsl:when test="/Root/Form/EDIT_BU_TYPE = 'd' or /Root/Form/EDIT_BU_NOTIFICATION_TYPE='d'"><![CDATA[
var value = $("select[name=BU_CT_NUM_DOC]").find('option:contains($VALUE_XYZ)').val();
$("#BU_CT_NUM_DOC").val(value).attr('selected',true).trigger("chosen:updated");
]]></xsl:when>

谢谢!

这不是选择器的索引,而是使用如何通过文本选择选项中的过滤技术? 您可以匹配字符串的整个文本,也可以修改筛选器函数以使用 indexOf。

var $VALUE_XYZ = "AB";
var value = $("select[name=BU_CT_NUM_DOC]").find('option').filter( function() { return $(this).html() == $VALUE_XYZ } ).first().val();
console.log( value );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="BU_CT_NUM_DOC">
<option value="abc">ABC</option>
<option value="ab">AB</option>
</select>

最新更新