使用 jQuery 或 Javascript 查找下拉选项值

Using jQuery or Javascript to find dropdown option value

本文关键字:选项 查找 jQuery Javascript 使用      更新时间:2023-09-26

当用户加载页面时,我会在页面上动态生成一个下拉列表。我想使用 jquery 或 javascript 获取下拉列表的值。

棘手的部分是下拉列表将具有这样的值:"我爱兔子($19.95)"

我想获取下拉列表的值,然后将值隔离在括号内。有什么想法吗?

干杯!

获取值很容易,请使用 val() .那将是一个字符串。

然后,您只需使用正则表达式(可能使用捕获组)获取值;例如:

var value, m, innerValue;
value = $("selector for select box").val();
m = /'(([^)]+)/.exec(value);
if (m) {
    innerValue = m[1];
}

该正则表达式说:"找到一个(,然后捕获它后面不是)的所有内容"。然后,我们获取捕获组的值。

您不能按照以下格式进行选择吗?

<select name="opinions_price">
<option value="19.45">I love rabbits (£19.45)</option>
<option value="12.45">I hate parakeets (£12.45)</option>
<option value="3.24">I am indifferent to possums (£3.24)</option>
</select>

然后只需执行以下操作:

var price = $('select option:selected').val();

如果你想改用数据属性(假设选择在循环中,你知道怎么做):

<select name="opinions_price">
<?php foreach($things as $thing) { ?>
<option data-price="<?php echo $thing['price']; ?>" data-id="<?php echo $thing['id']; ?>">[..]</option>
<?php } ?>
</select>

然后只需执行以下操作:

var price = $('select option:selected').data('price');
var id = $('select option:selected').data('id');

保存(可能)昂贵的正则表达式?