2014-12-19 21 views
2

我有一个形式,其中一个页面:jQuery发现不能使用属性选择器?

  • $('form').find('input[type=submit]')[undefined]
  • $('form input[type=submit]')按预期工作...

它是正常的吗?

+2

如果您希望任何人认真考虑你的问题,包括你的全部代码。 – Nit

+0

它的工作原理!例如提供复制您的问题 –

+0

当我看到两个变种作品http://jsbin.com/ticoci/1/edit?js,console –

回答

2

两个工作正常

console.log($('form').find('input[type=submit]').val()); 
 
console.log($('form input[type=submit]').val());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form> 
 
    <input type="submit" value="somevalue" /> 
 
</form>

+2

现在为什么这被低估?它回答问题 –

+0

@ A.Wolff感谢您的捍卫。通常选票赢了 –

2

你应该表现出更多的代码,但如果你正在undefined您可能没有实际加载的jQuery库。

如果你是Windows桌面上,您的浏览器可能有开发工具(通常为F12),你可以用它来查看JavaScript控制台和调试(步)你的代码,因为它执行。

jQuery选择器的返回值是一个数组,通常用于验证您是否选择了单个元素,只需检查此数组的长度(假设jQuery已正确加载,您可以通过将jQuery键入控制台应显示function(a,b){...}或类似的,而不是抛出一个关于未定义的引用的异常)。

为了测试这些例子,首先打开你的JavaScript /开发工具控制台,然后单击运行片段

运行的代码(jQuery是加载)

var $elem = $("form input[type='submit']"); 
 
if ($elem.length === 1) { 
 
    if (console) console.log("found the element"); 
 
} else { 
 
    if (console) console.log("did not find the element (could inject it, or log error, etc.)"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <input type='submit' value='Submit form' /> 
 
</form>

非工作代码(jQuery未加载)

try 
 
{ 
 
var $elem = $("form input[type='submit']"); 
 
if ($elem.length === 1) { 
 
    if (console) console.log("found the element"); 
 
} else { 
 
    if (console) console.log("did not find the element (could inject it, or log error, etc.)"); 
 
} 
 
} 
 
catch (ex) 
 
{ 
 
if(console)console.log(ex.message); 
 
}
<form> 
 
    <input type='submit' value='Submit form' /> 
 
</form>