我只想从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上遗漏了一些东西......但我不知道是什么。
谢谢!
答案 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建议的功能方法是一种更清洁的方法。