2014-12-19 18 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>