Javascript 仅获取下拉列表的选定选项属性
我有显示物品数量和价格的下拉列表。每个Javascript 仅获取下拉列表的选定选项属性,javascript,html,Javascript,Html,我有显示物品数量和价格的下拉列表。每个都有自己的数据roomid属性。当我选择一个时,它还会显示由于querySelectorAll()(我想)而选择的其他下拉列表中的所有。当我从任何下拉列表中选择一个时,我只想得到一个数据室ID属性。我该怎么做呢 这就是我所做的,正如我上面所说的,无论我点击哪个下拉列表,它都会得到每个下拉列表的每个选中的 函数sumre(){ var selects=document.querySelectorAll(“.rooms”); selects.forEach(函
都有自己的数据roomid
属性。当我选择一个
时,它还会显示由于querySelectorAll()
(我想)而选择的其他下拉列表中的所有
。当我从任何下拉列表中选择一个
时,我只想得到一个数据室ID
属性。我该怎么做呢
这就是我所做的,正如我上面所说的,无论我点击哪个下拉列表,它都会得到每个下拉列表的每个选中的
函数sumre(){
var selects=document.querySelectorAll(“.rooms”);
selects.forEach(函数(select){
var roomid=select.options[select.selectedIndex].getAttribute(“数据roomid”);
警惕(室友);
});
}
0
1 ($ 88)
2 ($ 176)
3 ($ 264)
4 ($ 352)
5 ($ 440)
0
1 ($ 77)
2 ($ 154)
3 ($ 231)
4 ($ 308)
将“选择”对象传递给sumre方法的是什么
function sumre(选择){
var roomid=select.options[select.selectedIndex].getAttribute(“数据roomid”);
警惕(室友);
}
0
1 ($ 88)
2 ($ 176)
3 ($ 264)
4 ($ 352)
5 ($ 440)
0
1 ($ 77)
2 ($ 154)
3 ($ 231)
4 ($ 308)
jQuery简化我的答案
您可以将此传递给函数,以了解您更改的元素:
函数集(el){
var roomId=$('option:selected',el).data('roomId');
警惕(室友);
}
0
1 ($ 88)
2 ($ 176)
3 ($ 264)
4 ($ 352)
5 ($ 440)
0
1 ($ 77)
2 ($ 154)
3 ($ 231)
4 ($ 308)
可能是因为您使用了.forEach
?在jQuery中,它将是$('.rooms').eq(0).find('option:selected').data('roomid')
那么您正在选择所有.rooms
元素……如果您不想这样做,那么就不要这样做。相反,只访问触发事件的select元素。(使用这种通过HTML属性附加事件处理程序的老式方法,您需要这样做,函数sumre(selectelement){…}
和onchange=“sumre(this)”
)谢谢。这是JQuery的一个很好的答案。我正在使用另一个Javascript库而不是JQuery。由于重复率低,我无法给出+1