Javascript DOM: точно определить «входные» элементы по их типу? - PullRequest
1 голос
/ 08 мая 2011

Мне нужно найти и манипулировать <input type="checkbox"> из таблицы. На данный момент у меня очень спартанская функция:

function testAjaxCheckBoxes() {
    var table = document.getElementById("ajax_output");
    var nodeList = table.getElementsByTagName("input");
}

Это все, что я знаю, как делать в данный момент. У меня есть nodeList объект со всеми тегами <input>, но я не знаю, как проверить тип или атрибуты каждого из них.

Полагаю, более общий вопрос - как вы просматриваете и манипулируете атрибутами любого рода через DOM?

Ответы [ 4 ]

4 голосов
/ 08 мая 2011

Получив элемент, вы можете использовать методы getAttribute, setAttribute и removeAttribute для чтения, записи и удалить атрибуты.

3 голосов
/ 08 мая 2011

Если вы можете использовать таргетинг на Firefox> = 3.5 и IE> = 8, вы можете использовать

document.querySelectorAll("input[type=file]")

, чтобы получить массив элементов DOM по желанию. Подробнее см. В документации MDC.

2 голосов
/ 08 мая 2011

.getAttribute(attr);

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

  var nodeList = document.getElementsByTagName("input");
for(item in nodeList) {
    if(nodeList[item].getAttribute("type") == "file") {
     alert("i'm a file");   
    }
    else {
     alert(nodeList[item].getAttribute("type"));
    }
};
0 голосов
/ 08 мая 2011

Если вы используете библиотеку (вам следует), например JQuery / Mootools и т. Д.
Это выглядело бы так

var inputs=$('#ajax_output input[type=checkbox]');

OR

var inputs=$('ajax_output').getElements('input[type=checkbox]');`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...