Переменные относительно DOM - PullRequest
0 голосов
/ 18 июня 2009

Это, безусловно, вопрос начинающего JS.

Моя проблема в том, что я хочу использовать значение переменной type для доступа к соответствующему флажку; однако это обрабатывает переменную как строку. Я пробовал это двумя способами.

function toggleGroup(type) {
    if (document.getElementById(type).checked == true){
        alert("foo");
    }
}

или

function toggleGroup(type) {
    if (document.nav.type.checked == true){
        alert("foo");           
    }
}

Ответы [ 2 ]

4 голосов
/ 18 июня 2009

У нас нет способа узнать, как должен обрабатываться тип - вы не показали нам, как вызывается функция (в частности, мы не знаем, что вы передаете в качестве аргумента).

Если является строкой (соответствует идентификатору элемента), то document.getElementById(type).checked должно работать (хотя == true избыточно).

document.nav.type.checked не должно работать, поскольку имена свойств точечной нотации не интерполируются. Для этого вы должны использовать квадратную скобку : document.forms.nav.elements[type].checked. Это будет совпадать с именем или идентификатором - если у вас есть несколько элементов с одинаковым именем, document.forms.nav.elements[type] будет объектом, который вы можете рассматривать как массив (и не будет иметь проверенного свойства).

0 голосов
/ 18 июня 2009

вы также можете сравнить с "истинным"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...