Выбранный селектор в JavaScript - PullRequest
       11

Выбранный селектор в JavaScript

1 голос
/ 05 октября 2011

Как я могу преобразовать следующий код 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 ]

4 голосов
/ 05 октября 2011

Выбранный принимает выбранный вариант из списка SELECT. Таким образом, чтобы получить все выбранные опции из всех видимых SELECTs со страницы с чистым JavaScript

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 ..
       }
     }
   }
}

ОБНОВЛЕНИЕ Поэтому, если я вас полностью понимаю, вам понадобятся все выбранные ОПЦИИ из ВСЕХ видимые ВЫБОРЫ, и вы МОЖЕТЕ использовать jQuery

$('select:visible option:selected').each(function(i,elm) {
  // instructions
  alert(elm.value);
 });
3 голосов
/ 05 октября 2011

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

дополнительная информация о selectedindex и selected

...