我有以下下拉菜单:
<select id="target">
<option value="0">Zero ($123.45)</option>
<option value="1">One ($99.99)</option>
<option value="2">Two ($4.50)</option>
</select>
使用jQuery,如何选择所选选项()
括号的内容,即123.45
,99.99
或4.50
?
到目前为止,我有:
$("select#target option:selected").contents();
虽然只提供了Zero ($123.45)
或等价物。如何进一步过滤以获得我正在寻找的号码?
提前致谢。
答案 0 :(得分:4)
尝试:
var a = $("select#target option:selected").contents();
var bracketed = a.replace(/\(([^)]*)\)/g, "$1");
或者,如果您不想使用正则表达式:
var a = $("select#target option:selected").contents();
var bracketed = a.split('(')[1].split(')')[0];
答案 1 :(得分:4)
您也可以将这些美元值用作每个的值属性:
<option value="$123.45">Zero ($123.45)</option>
etc...
然后使用这个jQuery来获取它:
var a = $('select#target option:selected').attr('value');
答案 2 :(得分:3)
我认为使用jQuery执行此操作最常用的方法是
$("#target :selected").text().match(/\((.+)\)/).pop()
正则表达式通常是匹配Javascript中文本的最佳方式,这种代码风格符合通常的jQuery方法链接样式,不会引入任何多余的局部变量,也不包含丑陋的索引解除引用操作。我还以更紧凑的形式编写了选择器。