getElementsByName для form select
Всем ДД, никак не могу нагуглить нужное свойство.
Есть форма типа <select name='Country'> <option value='1'>Russia <option value='2' selected>Kazakhstan <option value='3'>Ukraina </select> document.getElementsByName('Country')[0].value возвращает 2, document.getElementsByName('Country')[0].text возвращает undefined, А мне нужно получить Kazakhstan - к какому свойству нужно обращаться вместо value и text? |
Нужно обращаться к свойству selectedIndex. Оно содержит номер выбранного пункта. Ты же ведь тестовое задание выполняешь? Там нужно делать запросы типа "1.json". Вот ты и получишь:
var url = document.getElementsByName('Country')[0].selectedIndex + 1 + ".json"; |
Спасибо, но...
При чем здесь .json? Пример из реального приложения я упростил, чтобы было понятнее. |
var select = document.getElementsByName('Country')[0]; select.options[select.selectedIndex].text |
Цитата:
|
Nekromancer,
Спасибо, то что надо! |
Еще один вопрос написовался.
Есть набор например дивов <div class="AAA BBB CCC"">Текст 1</div> <div class="AAA BBB DDD"">Текст 2</div> <div class="AAA DDD QQQ"">Текст 3</div> Мне нужно найти элементы где есть классы AAA BBB, таких в примере 2 штуки document.getElementsByClassName('AAA BBB').length- так не работает, нужно видимо как-то регулярное выражение использовать, но не могу понять как ( Если искать все три класса, то работает document.getElementsByClassName('AAA BBB CCC').length |
document.querySelectorAll('.AAA.BBB'); |
Отлично, спасибо!
|
Еще один вопрос.
Вот так работает: className.replace('hide ' + selected_text + ' ACCEPTED','show ' + selected_text + ' ACCEPTED'); Но мне нужно, чтобы работало при любом третьем классе, а не только ACCEPTED. Вот так не работает: className.replace('hide ' + selected_text + ' *','show ' + selected_text + ' *'); Как правильно шаблон оформить? Что нужно вместо звездочки написать, чтобы на любое имя третьего класса срабатывало? |
apollox,
className.replace("hide", "show"); |
Это понятно )
Мне нужно чтобы срабатывало например className.replace('hide YES ACCEPTED', 'show YES ACCEPTED); className.replace('hide YES NOT_ACCEPTED', 'show YES NOT_ACCEPTED); но чтобы НЕ срабатывало className.replace('hide NO ACCEPTED', 'show NO ACCEPTED); className.replace('hide NO NOT_ACCEPTED', 'show NO NOT_ACCEPTED); То есть срабатывать должно на hide YES и любой третий класс но НЕ на hide + 'что-то кроме YES' + любой третий класс Поэтому я хочу понять, как обозначить любой третий класс... |
apollox, ну а зачем вам 3-ий класс если он любой?
className.replace("hide YES", "show YES"); |
А, то есть replace среагирует только на два нужных класса, я думал что все классы у элемента смотрит и какой-то шаблон нужен для третьего, теперь понятно.
А если между hide и YES будет еще какой-то класс, типа hide QQQ YES, шаблон сработает или это QQQ нужно как-то обозначать? Ну то есть любой второй класс ) className.replace("hide YES", "show YES"); |
apollox, это уже нужно регулярками...или разбирать строку...
className.indexOf("hide") != -1 && className.indexOf("YES") != -1 |
Вот, уже ближе к теме ) Можете навскидку кинуть ссылку, где про регулярки для className почитать, чтобы вас тут глупыми вопросами не доставать? )
|
Цитата:
|
Часовой пояс GMT +3, время: 04:19. |