在javascript中按类型访问元素

时间:2011-05-05 11:45:21

标签: javascript types element document

前一段时间我在Javascript中进行了一些测试, 并使用代码来获取具有某个类的所有元素的文本, 现在我试图制作这样的东西但是通过某种类型获得所有元素,例如所有元素type =“text” 有没有办法在Javascript中执行此操作,还是应该使用jquery?

var xx = document.getElementsByClassName("class");
for (i=0;i<xx.length;i++){
    var str=xx[i].innerHTML;
            alert(str);
}

4 个答案:

答案 0 :(得分:54)

在普通的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();

答案 1 :(得分:50)

如果您很幸运并且只需要关注最近的浏览器,您可以使用:

document.querySelectorAll('input[type=text]')

“recent”表示不是IE6和IE7

答案 2 :(得分:2)

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;
}());

答案 3 :(得分:1)

sizzle选择器引擎(JQuery的功能)完全可以满足这一要求:

var elements = $('input[type=text]');

或者

var elements = $('input:text');