我正在使用这个简单的代码来过滤包含许多文本输入的搜索表单,看看它们是否有值,然后添加一个类。 适用于Chrome,Safari和Firefox,但不适用于IE9。
$('input[type="text"]').filter(function() {
if ($(this).val() !== '') {
$(this).addClass('used');
}
});
请提前建议,谢谢!
修改 改变每一个但没有解决问题......这就是触发功能的事件......
$(document).on('event-ajax-form-is-loaded', function() {
$('input[type="text"]').each(function() {
if ($(this).val() !== '') {
$(this).addClass('used');
}
});
});
答案 0 :(得分:1)
根据您分享的有限信息,您应该这样做:
$('input[type="text"]').filter(function() {
return $(this).val() !== '';
}).addClass('used');
.filter()应该减少一组匹配的元素,因此它的过滤函数应该总是返回一个bool,而不是操纵DOM。
编辑:根据您更新的代码段和您在评论中分享的页面链接,如果您在WordPress中使用jQuery,那么它总是更安全地包装代码如下:
(function($) {
/* jQuery Code using $ object */
})(jQuery);
答案 1 :(得分:0)
enter code here
在JS
中,您可以通过获取其标记名称来检查元素值
for (var i = 0; i < document.getElementsByTagName('input').length; i++){
if (document.getElementsByTagName('input')[i].value == "")
{
alert("The value of textbox at " + i + " is empty");
}
}
或者像其他人的建议一样,在.each
JQuery
$('input[type="text"]').each(function(i){
if ($(this).val() == "") {
alert("The value of textbox at " + i + " is empty");
}
});
如果您坚持使用filter
,请转到此处
$('input[type="text"]').filter(function()
{ return $( this ).val() != ""; }).addClass("used");