无法通过 for 循环传递动态 div id

not able to pass dynamic div id by for loop

我有动态 ID,当我尝试 res[i] 时,它会存储在输入字段中,它会给我 error.i javascript 尝试但没有成功。收到此错误

TypeError: $(...) is null


newprice = $("#"+res[i]).value();

表单输入

<input type="hidden" id="customprice" value="select_91,select_92,select_93" />




    <select  id="select_91" ><option value="">-- Vælg venligst --</option><option value="287" price="0" >1 pose  </option><option value="288" price="50" selected>2 poser  +DKK 50,00</option></select> 

<select  id="select_92" ><option value="">-- Vælg venligst --</option><option value="287" price="0" >1 pose  </option><option value="288" price="50" selected>2 poser  +DKK 50,00</option></select>  

<select  id="select_93" ><option value="">-- Vælg venligst --</option><option value="287" price="0" >1 pose  </option><option value="288" price="50" selected>2 poser  +DKK 50,00</option></select>   

我的密码是

customprice = $('customprice').value;
res = customprice.split(",");
price = 0;
alert(res.length);
for (i = 0; i < res.length; i++) {
    alert(res[i]);
     newprice = $("#"+res[i]).value();
    price = price + parseFloat(newprice);
}

如果这是 PrototypeJS,那么你的错误是 $('#<elementid>'),因为 $() 方法采用的是 id 而不是 CSS 选择器。

所以 IF 这是 PrototypeJS,这里是如何解决你的问题 improve/simplify 它也有点

鉴于您的 HTML 以上

customprice = $('customprice').value;
res = customprice.split(",");
price = 0;

res.each(function(item){
    price += parseFloat($F(item));
});

您也可以像这样将它们链接在一起

var price = 0;
$F('customprice').split(',').each(function(item){
    price += parseFloat($F(item));
});

** $F() 方法returns 传递的id 的值本质上是这样

$('<elementid>').value === $F('<elementid>')

编辑

获取所选选项元素的价格属性

var price = 0;
$F('customprice').split(',').each(function(item){

    var optionprice = $(item).options[$(item).selectedIndex].readAttribute('price');

    price += parseFloat(optionprice);

    //this way might also work but the above will work
    var option1price = $(item).down('option[selected]').readAttribute('price');


});