以下代码段对我不起作用。基本上我想检查是否有一个名为“documents []”的输入元素和值item.id并返回void。
我认为这一行会做到:$("input [name='documents[]'][value='"+item.id+"'") != false
。
但是每次声明都返回true。我查看了jQuery构造函数的文档,如果没有为选择器找到元素,它没有提到返回false的任何内容。
如何判断选择器是否与任何元素不匹配?
$.ajax({
url:'/myid/documents/json_get_documents/'+request.term,
dataType:"json",
success: function(data) {
response($.map(data, function(item){
if($("input [name='documents[]'][value='"+item.id+"'") != false) {
return; //This item has already been added, don't show in autocompete
}
return {
label: '<span class="file">'+item.title+'</span>',
id: item.id,
value: 'Search by title'
}
}))
}
});
答案 0 :(得分:3)
$("input [name='documents[]'][value='"+item.id+"'"]).length
如果该元素在DOM中可用,则此属性的长度值大于零。你看,当你使用jquery的选择器选择一个元素时,它会用该元素创建一个特殊的数组(或者你可以说是一个jquery对象)。如果可以使用该选择器选择多个元素,则该数组将包含所有这些元素,如果没有元素与该选择器匹配,则该数组将没有任何内容,在这种情况下,它的length属性将为零。
希望有所帮助。
答案 1 :(得分:2)
您可以使用.length
。 $('lol').length
会在0
返回1时返回$('body').length
。