2015-12-05 3 views
0

У меня есть таблица. Большинство столбцов содержат только текст, но два содержат поля «select».selectedIndex неверен

Я пытаюсь пройти через таблицу и извлечь значение выбранного параметра.

Мне удалось получить доступ к окну выбора, но затем, пытаясь получить значение параметра в выбранномИндексе, я столкнулся с этой проблемой. ВыбранныйIndex всегда отображается как «неопределенный».

Heres некоторые код:

var table = document.getElementById("inTable"); 

    for (var i = 0, row; row = table.rows[i]; i++) { 
     //iterate through rows 
     //rows would be accessed using the "row" variable assigned in the for loop 
     for (var j = 0, col; col = row.cells[j]; j++) { 
     //iterate through columns 
     //columns would be accessed using the "col" variable assigned in the for loop 
     if (col.nodeName === 'TD') { 
      // select box 
      if (j === 4) { 
       var htmlString = col.innerHTML; 
       var parser = new DOMParser(); 
       var doc = parser.parseFromString(htmlString, "text/html"); 
       var e = doc.getElementById('sel'); 
       console.log(e.selectedIndex); // -> undefined 
      }     
     }    
     } 
    } 

также при использовании console.log(e.options[e.selectedIndex].value);

Я получаю некоторые значения, однако они не соответствующие фактическим значениям, выбранным, первый я получаю 0, которая на самом деле соответствует к первому значению в полях выбора, но затем я переключил первые значения выборок на 9 и все еще получил 0 для console.log(e.options[e.selectedIndex].value);

Я смущен и, вероятно, ошибся с этим! может кто-то меня прямо посадил?

ответ

0

Я не понимаю, почему вы едете на велосипеде по клеткам своего стола.

Если вы используете идентификаторы для идентификации вашего выбора тегов вы можете просто использовать document.getElementById('your-id');

0

Вам не нужно использовать, чтобы использовать DomParser для запроса выбранного индекса выбирает, на самом деле вы могли бы присвоить класс вы выбираете и запрашиваете их с помощью document.getElementsByClassName ('yourclass'), а затем для каждого из них просто читайте SelectedIndex.

var selects = document.getElementByClassName('classname'); 
for(var i = 0, len = selects.length; i < len; i++){ 
    console.log(selects[i].selectedIndex); 
} 

Также свойство id должно быть уникальным для каждого элемента, кажется, что все ваши избранные объекты имеют одинаковый идентификатор «sel».

+0

Я решил снять оригинальную идею в лицо и попробовать что-то еще! в любом случае спасибо. – ThriceGood

Смежные вопросы