在jquery中检查元素是否存在

时间:2012-05-17 12:13:59

标签: javascript jquery html

我有一个页面,我必须根据第一个表单中的第一个输入搜索元素的存在

<input type="text" /><!-- first input -->
<button></button>
<div>
    <form><input value="3" /></form> <!-- first form -->
    <form><input value="3" /></form>
</div>

和脚本

$("button").click(function()
{
    if( $(this).next().children("form").first().has("input[value='" + $(this).prev().val() + "']") )
        alert("Present");
    else
        alert("Absent");
});

但它不起作用

2 个答案:

答案 0 :(得分:1)

您可以通过检查查询返回的集合的长度来检查元素是否存在:

例如,如果我要检查我是否有表格:

var forms = $('form').length //0 if none, at least 1 if any

答案 1 :(得分:0)

问题是.has() method没有返回布尔值,它返回一个jQuery对象,特别是它“从匹配元素的子集构造一个新的jQuery对象”。您需要检查该对象的长度,以查看是否有任何匹配的元素:

if($(this).next().children("form").first()
           .has("input[value='"+$(this).prev().val()+"']").length != 0)

演示:http://jsfiddle.net/mmQHB/