如何从dropdownlist中拆分所选值并将其用作jquery中的选择器
如果我的头衔看起来很愚蠢,请原谅我。我是jQuery的新手,不知道如何用正确的jQuery术语解释我的问题 所以我刚才问了一个问题,得到了完美的答案。我现在的问题是,我的dropdownlist中的值没有那么简单,因此给我的解决方案失败了 给我的代码是如何从dropdownlist中拆分所选值并将其用作jquery中的选择器,jquery,css-selectors,Jquery,Css Selectors,如果我的头衔看起来很愚蠢,请原谅我。我是jQuery的新手,不知道如何用正确的jQuery术语解释我的问题 所以我刚才问了一个问题,得到了完美的答案。我现在的问题是,我的dropdownlist中的值没有那么简单,因此给我的解决方案失败了 给我的代码是$(“选择[id*='ComboBox'][value!=0])。在我的示例代码中,这很好,因为值是0、1、2、3。但实际上,这些值类似于默认价格1、代码1、代码2、代码3。。。因此,基本上,这些值是串联的字符串。我知道如何分割字符串,但我现在的问
$(“选择[id*='ComboBox'][value!=0])代码>。在我的示例代码中,这很好,因为值是0、1、2、3。但实际上,这些值类似于默认价格1、代码1、代码2、代码3。。。因此,基本上,这些值是串联的字符串。我知道如何分割字符串,但我现在的问题是如何将其与以前的代码集成
$(“选择[id*='ComboBox'][value.split(''u'[0]!==default])。长度+偏移量代码>似乎不起作用
这可能吗?再次感谢
以下是JSFIDLE:不要滥用jQuery选择器,最好使用
如果以下值适用于“0”:
然后,对于以“default”开头的值,您应该能够执行以下操作:
$("select[id*='ComboBox']").not("[value^='default']").length + offset
其中^=
为“以开头”
但您可以使用,这将允许您执行任何类型的字符串操作,以测试是否应包括每个项:
$("select[id*='ComboBox']").filter(function() {
return /^default/.test($(this).val());
}).length + offset
/^default/
是在字符串开头查找“default”的正则表达式
$(function() {
$("select[id*='ComboBox']").change(function() {
var sum=0;
$(this).find("option").each(function(){
sum+=parseInt($(this).val().split("price")[1]);
});
$("#total").text(sum);
});
});
如果用户从下拉列表中选择任何值。
总和被分解(1+2+3+4)=10
您可以按照自己的方式使用字符串拆分逻辑。但是,这是您想要的吗?您的意思是要计算页面上当前所选项目的值不以文本“default”开头的select元素的数量吗?您可以设置一个JSFIDLE以便我们可以看到您目前所拥有的内容吗?听起来您需要一个regexp作为选择器,查看是否要对所有选择值(如默认价格1、代码1价格2、代码3价格3)求和。。或者只选择什么?很好。这真的意味着我现在真的需要更加认真地研究jQuery。谢谢如果值以“code1”开头,则不包括在选择的总和中@AnneLagang,这是你所期望的吗?@Umesh-这个问题不清楚,但在看了她链接的关于计算选定非零值的选定元素的问题后,我猜她本质上想检查有多少选定元素不在默认值上。@nnnnnn,她接受答案意味着她从你的答案中得到了她想要的:)
$("select[id*='ComboBox']").filter(function() {
return /^default/.test($(this).val());
}).length + offset
$(function() {
$("select[id*='ComboBox']").change(function() {
var sum=0;
$(this).find("option").each(function(){
sum+=parseInt($(this).val().split("price")[1]);
});
$("#total").text(sum);
});
});