Доступ к элементам по типу на javascript
Некоторое время назад я делал некоторые тесты на javascript,
и играл с кодом, чтобы получить текст всех элементов с определенным классом,
Теперь я пытался сделать что-то вроде этого, но получить все элементы определенного типа, например, все элементы type = "text"
Есть ли способ сделать это в javascript или использовать jquery?
var xx = document.getElementsByClassName("class");
for (i=0;i<xx.length;i++){
var str=xx[i].innerHTML;
alert(str);
}
Спасибо -
Ответы
Ответ 1
В простом JavaScript вы можете сделать это:
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].type.toLowerCase() == 'text') {
alert(inputs[i].value);
}
}
В jQuery вы просто выполните:
// select all inputs of type 'text' on the page
$("input:text")
// hide all text inputs which are descendants of div class="foo"
$("div.foo input:text").hide();
Ответ 2
Если вам повезло и нужно заботиться только о последних браузерах, вы можете использовать:
document.querySelectorAll('input[type=text]')
"последние" означает не IE6 и IE7
Ответ 3
Механизм селектора sizzle (какие полномочия JQuery) идеально подходит для этого:
var elements = $('input[type=text]');
или
var elements = $('input:text');
Ответ 4
var inputs = document.querySelectorAll("input[type=text]") ||
(function() {
var ret=[], elems = document.getElementsByTagName('input'), i=0,l=elems.length;
for (;i<l;i++) {
if (elems[i].type.toLowerCase() === "text") {
ret.push(elems[i]);
}
}
return ret;
}());