JavaScript中的选定选择器

时间:2011-10-05 06:23:39

标签: javascript jquery forms selector

如何将以下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
  }    
}

感谢您的帮助!

2 个答案:

答案 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
  } 
}

有关selectedindexselected

的更多信息