JQuery选择具有完全匹配类的所有下拉列表

时间:2017-02-10 07:36:28

标签: javascript jquery loops select drop-down-menu

这是我的代码

   $('select[class^="' +pnum+ '"]').each(function(){

          // Get price and prefix of each attributes
          var PricePrefix = AttributesAll[$(this).attr('class')]
          var PricePrefixSplit = PricePrefix.split("-with-");


          var AttPrice = parseFloat(PricePrefixSplit[0]);
          var AttPrefix = PricePrefixSplit[1];

          attributes_price = parseFloat(attributes_price);

          // Formulas for calculating attribute prices
          if (AttPrefix == '+') {
            attributes_price = attributes_price+AttPrice;
          } else if (AttPrefix == '%'){
            attributes_price = attributes_price * (1+(0.01*AttPrice));
          } else {
            attributes_price =  attributes_price-AttPrice;
          }



        });

我正在尝试使用EXACT匹配类名来获取所有选择框。

$('select[class^="' +pnum+ '"]').each(function(){

1)上面的代码行获得以匹配类

开头的所有选择框

2)pnum是一个整数值,我试图将其转换为字符串,但仍然是同一个问题

3)假设有类class =' 1'和班级=' 10'它取出了两者都不应该

4)我试图用

替换上面的代码行
$('select[class="' +pnum+ '"]').each(function(){

这样做仍然无法正常工作

非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

为类指定整数听起来不是一个好主意。除非你有一个特定整数的CSS。如果您使用它来纯粹识别对象,则可以使用自定义选择器,如

<select data-selector="1">
<option value="as">1st option</option>
</select> 

对于检索,您可以按照穆罕默德的建议,或者您可以使用以下

alert($('select[data-selector="1"]').val())

希望有所帮助。

答案 1 :(得分:0)

通常,将类指定为数字并不是一个好主意,尝试添加一些伪词:

$('select[class^=

无论如何,我认为问题是你的pnum变量,如果它可以说1 - 它将选择所有以1 beacouse开头的类,你在定义中这样说:

var elem = "el" + pnum; $('select[class="'+elem+'"').each(function(){

用于处理以定义的单词(^ char)

开头的所有类

更进一步,您可以在循环之前定义存储类名称的变量:

{{1}}