【问题标题】:Select option from dropdown where value contains string [duplicate]从下拉列表中选择选项,其中值包含字符串 [重复]
【发布时间】:2020-04-29 01:23:32
【问题描述】:

我有一个这样的下拉菜单

<select id="acctDesc" name="acctDesc">
<option value="1~PB1001~10001~0~Sales Glassware">1</option>
<option value="2~PB1002~10002~0~American">2</option>
<option value="3~PB1003~10003~0~Sales Appliance">3</option>
<option value="4~PB1004~10004~0~Sales Spare Parts">4</option>
<option value="5~PB1005~10005~0~Sales ">5</option>
</select>

还有

<script>
var test="Sales Glassware";
</script>

现在我必须从下拉列表中选择该选项,其中选项的值包含上述变量值。 到目前为止,我已经使用了 jquery 过滤器,但无济于事。 任何帮助表示赞赏。

【问题讨论】:

标签: javascript jquery drop-down-menu


【解决方案1】:

使用属性选择器,$ 将搜索以您的文本结束的选项

$('option[value$='+test+']');

使用包含比较器来查找“选项的值包含上面的变量值”

$('option[value*='+test+']');

要选择它,只需在分号前添加以下内容:

.prop('selected',true);

答案: 因此,尽管任何一种方法都可以,但您的具体问题的答案(选择“包含”值的选项)是:

$('option[value*='+test+']').prop('selected',true);

【讨论】:

  • 我们真的应该回答一个骗子吗?
  • @Rajesh 评论中的答案与这个问题的答案不完全一样
  • 我知道这一点,因此我已经评论了 包含选择器的链接。重点是结合它会解决问题。所以我们真的应该回答所有的组合。此外,必须有一个适当的欺骗。我会搜索并添加它的链接。
  • @Rajesh 如果你找到它我会关闭问题
【解决方案2】:

使用.split()方法分割字符串中的特定字符,并返回数组,使用.pop()方法获取数组中的最后一个值。

$('#acctDesc').on('change', function() {
       var val = $(this).val();
       val = val.split('~').pop();
       alert(val)
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="acctDesc" name="acctDesc">
<option value="1~PB1001~10001~0~Sales Glassware">1</option>
<option value="2~PB1002~10002~0~American">2</option>
<option value="3~PB1003~10003~0~Sales Appliance">3</option>
<option value="4~PB1004~10004~0~Sales Spare Parts">4</option>
<option value="5~PB1005~10005~0~Sales ">5</option>
</select>

【讨论】:

  • 您可以直接使用value~=searchValue。无需拆分搜索
猜你喜欢
  • 2010-12-24
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
  • 2014-07-21
相关资源
最近更新 更多