我的html类似于:
<html>
...
<select class="ra1" id="rate2620_"> ... </select>
<select class="ra1" id="rate2621_"> ... </select>
...
</html>
我有一个为我生成每个选择的所有函数,如:
for (i=from; i> to; i--){
var ii = i.toString(); // ii = 2621 or 2620 or ...
$("#rate" + i + "_").live("change", {pos: ii} ,function(e){
sendValue($(this).val(),e.data.pos);
});
}
我想将我的代码更改为一个代表class =&#34; ra1&#34; 像(不工作)的东西:
$('.ra1').live("change", function(e){
var id = $(this).children(":selected").attr("id"); // get the id element
id = id.replace(/\D/g,''); // convert from id="rate2620_" to> id="2620"
sendValue($(this).val(),id);
});
所以{pos:ii} ii应该用id改变,但我真的没有想法它是如何工作的。
答案 0 :(得分:3)
您使用了错误的ID选择器。它应该是:
var id = $(this).attr("id");//or this.id for pure JS
live也在jquery 1.7+中被弃用了。如果您使用的是更高版本,请使用jquery .on()