Javascript 如果不使用jQuery,如何按类型获取输入?
我知道我可以打电话:Javascript 如果不使用jQuery,如何按类型获取输入?,javascript,Javascript,我知道我可以打电话: document.getElementsByTagName("input"); 我是否需要循环检查type==“text”的属性 我知道jQuery有输入[type=“text”]。 有什么简单的JavaScript方法可以实现这一点吗?如果您可以使用,您可以使用。这就是您可以做到的:) 您的代码基本上是正确的,除非代码正在运行。以下是跨浏览器代码: var textInputs; if (document.querySelectorAll) { textInpu
document.getElementsByTagName("input");
我是否需要循环检查type==“text”的属性
我知道jQuery有输入[type=“text”]
。
有什么简单的JavaScript方法可以实现这一点吗?如果您可以使用,您可以使用。这就是您可以做到的:)
您的代码基本上是正确的,除非代码正在运行。以下是跨浏览器代码:
var textInputs;
if (document.querySelectorAll)
{
textInputs = document.querySelectorAll('input[type=text]');
}
else
{
textInputs = [];
var unfiltered = document.getElementsByTagName("input"),
i = unfiltered.length,
input;
while(i--)
{
input = unfiltered[i];
if (!input.type || input.type === 'text')
{
textInputs.push(input);
}
}
}
N.B.在else
案例中,我检查输入的真实性。如果输入如下所示,请键入:
<input />
在这种情况下,它默认为type=“text”
。我仅包含此属性,因为我不能100%确定当属性关闭时是否每个浏览器都将返回“text”
。记录在案,至少Chrome做到了 它实际上是特定于sizzlejs的,而不是jquery本身。是的,删除jquery是好事。DOM0集合将以最佳方式执行此任务:
for ( var i = 0; i < document.forms.length; i++ )
for ( var j = 0; j < document.form[i].elements.length; j++ )
/* have to do case-insensitive match to support any DOCTYPE */
if ( document.form[i].elements[j].type.toUpperCase() == 'TEXT' )
document.form[i].elements[j] = 'HAI!';
/* done! */
for(var i=0;i
hi matt,有没有好的来源可以查看这些浏览器方法功能及其支持的列表?当然!听起来你可能错过了我答案中quirksmode的链接,所以又来了:当你省略它时,Chrome会返回text
,但你不能在querySelector中使用它。更新您的小提琴以显示它:
for ( var i = 0; i < document.forms.length; i++ )
for ( var j = 0; j < document.form[i].elements.length; j++ )
/* have to do case-insensitive match to support any DOCTYPE */
if ( document.form[i].elements[j].type.toUpperCase() == 'TEXT' )
document.form[i].elements[j] = 'HAI!';
/* done! */