#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. Спасибо,