使用JQuery从body中选择所有输入文本

时间:2011-01-21 14:54:19

标签: jquery selector

我只想从html的正文中获取所有<input type="text"></input>

到目前为止,我有这个:

function toUpper() {
    var elements = $("body input:text");
    for(var i=0; i<elements.lenght; i++){
        elements[i].val(elements[i].val().toUpperCase());
    }
}

但它不起作用......我可能在JQuery Selector上遗漏了一些东西......但我不知道是什么。

谢谢!

3 个答案:

答案 0 :(得分:5)

function toUpper() {
    $("input:text").val(function(i, val) {
        return val.toUpperCase();
    });        
}

这可能更方便 演示http://www.jsfiddle.net/4yUqL/85/

答案 1 :(得分:0)

$("body input:text").each(function(){
         $(this).val($(this).val().toUpperCase());
});

答案 2 :(得分:0)

您的选择器很好,虽然body部分有点不必要(我希望您身体外没有input个。)

但其余的都有问题。当您索引jquery对象时,您将获得实际的HtmlInputElement(或其他)对象,围绕该对象的jquery包装器。所以你不能在没有先将它变成jquery对象的情况下使用jquery .val()命令。以下是您当前代码的更正版本:

var elements = $("input:text");
for(var i = 0; i< elements.length; i++)
    $(elements[i]).val($(elements[i]).val().toUpperCase());

但jAndy建议的功能方法是一种更清洁的方法。