Выберите тег, который не устанавливается в ie при выборе.значение в javascript

#javascript #internet-explorer

#javascript #internet-explorer

Вопрос:

 cells=document.getElementsByClassName('assetAction');
var selectedDropdown=document.getElementsByClassName('assetSelected');  
for(var j = 0; j < cells.length; j  ) {
   selectedDropdown[j].value = 'Change';
 

}

Приведенный выше код javascript. Я устанавливаю тег выбора, который повторяется для строки.

 <td class="assetAction">
    <select class="assetSelected">
        <option>Select</option>
        <option>Change</option>
        <option>Disconnect</option>
        <option>Renew</option>
        <option>Add Feature</option>
    </select>
</td>
 

несколько в этом формате. Также существует несколько таких вариантов выбора. У меня есть действие, которое устанавливает параметр «изменить» по щелчку.
Приведенный выше код работает в Firefox, но не в IE.
Чего мне не хватает?
Ранее я использовал name для td и select, теперь я изменил все на class.

Комментарии:

1. не могли бы вы найти строку ошибки? .. попробуйте вывести результаты, такие как cell. длина или selectedDropdown.length.

2. Какая версия IE? Знаете ли вы, что вы сравниваете яблоки с бананами? Вы перебираете каждый элемент опции и останавливаетесь, когда достигнете количества ячеек.

3. getElementsByClassName не работает в IE, поэтому вы можете использовать что-то еще, например getElementById или getElementsByTagName, а затем выполнить цикл и получить свой тег выбора?

4. @Krishnanunni selectedDropdown[j].значение, похоже, является проблемой. когда я печатаю это, он выдает пробел, но когда я делаю selectedDropdown[j].innerHTML, он показывает мне выбранный html. Правильно ли это, есть ли какой-нибудь более простой способ установить параметр, совместимый с несколькими браузерами?

Ответ №1:

 cells=document.getElementsByClassName('assetAction');
var selectedDropdown=document.getElementsByClassName('assetSelected');  
for(var j = 0; j < cells.length; j  ) {
selectedDropdown[j].options[2].selected=true;}
 

Можете ли вы попробовать это?

или также

  selectedDropdown[j].options[2].selected="selected";
 

не уверен в синтаксисе

Комментарии:

1. Также я не уверен в совместимости getElementsByClassName с IE. Однако getElementById или Name работает во всех.

2. имя, конечно, не сработало, я сначала попробовал его с именем, и именно по этой причине я изменил все на класс. Идентификатор, вероятно, сработал бы, но я создаю свою собственную таблицу HTML динамически, и будет немного сложнее создать таблицу html с уникальными идентификаторами, также используя собственный язык, который не такой гибкий.

3. selectedDropdown[j].параметры [2].selected=true; работает в обоих случаях, проверяя еще несколько вещей. Я также хочу прочитать значение выбранного индекса без необходимости читать innerhtml.

4. вы можете прочитать выбранный индекс, используя тот же if(selectedDropdown[j].options[i].selected==true;){s_index=i;}

5. var SelectedValue = selectedDropdown[j].options[selectedDropdown[j].SelectedIndex].text; Я смог прочитать выбранное значение, используя это.. Но в целом ваше решение работало как в IE, так и в FF. Спасибо,