无法通过 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');
});
我有动态 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');
});