如何将以下jQuery代码转换为可用的JavaScript代码?
的jQuery
$('select :visible:selected').each(function(i) {
// instructions
}
可见选择器我已经用JS实现了。或者有更好的解决方案吗?
的JavaScript
for (var i=0;i<$('select').length;i++) {
if ($('select')[i].style.visibility == "visible") {
// instructions
}
}
感谢您的帮助!
答案 0 :(得分:4)
Selected从SELECT列表中选择选择的OPTION。因此,要从包含纯JavaScript的页面中的所有可见SELECT中获取所有选定的选项
var selects = document.getElementsByTagName('select');
for(var i=0; i<selects.length; i++) {
var select = selects[i];
if(select.style.visibility == 'visible'){
for(var j=0; j<select.options.length; j++) {
if(select.options[j].selected){
// ... your code goes here ..
}
}
}
}
更新因此,如果我从根本上解读你,你需要来自所有selected SELECT的所有visible选项,你可以使用jQuery
$('select:visible option:selected').each(function(i,elm) {
// instructions
alert(elm.value);
});
答案 1 :(得分:3)
iQuery 是 javascript,因此“jQuery代码” 正在使用JavaScript代码。
另外,你在第二个例子中使用的事实($('select')
)让我想知道你为什么不只是简单地使用你的第一个。
如果你不想使用jQuery并坚持使用“普通”javascript,它应该是这样的:
var elements = document.getElementsByTagName('select');
for (var i=0;i<elements.length;i++) {
var element = elements[i];
// use:
element.style.visibility // to check for visibility
element.selectedIndex // to check if/what option is selected (-1 = no selection)
// a 'select' doesn't have a 'selected' property
// because it's the <option> that gets selected
// so we end up:
if (element.style.visibility == "visible" && element.selectedIndex >= 0) {
// instructions
}
}
的更多信息