如何按类型访问DOM元素? (类似于 getElementsByName())

问题描述 投票:0回答:4

不久前我正在用 JavaScript 进行一些测试, 并使用代码来获取具有特定类的所有元素的文本。

现在我正在尝试制作类似的东西,但通过某种类型获取所有元素,例如所有元素

type="text"

有什么方法可以在 JavaScript 中做到这一点还是我应该使用 jQuery?

var xx = document.getElementsByClassName("class");
for (i=0;i<xx.length;i++){
    var str=xx[i].innerHTML;
            alert(str);
}
javascript dom types element document
4个回答
128
投票

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

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

“最近”意味着不是 IE6 和 IE7


112
投票

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

4
投票

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;
}());
© www.soinside.com 2019 - 2024. All rights reserved.