2013-10-31 51 views
2

我在訪問輸入標籤的類時遇到了問題。首先,我使用下面的代碼行,並且它返回false。Jquery hasClass方法不起作用

$('#metaField_932.value').hasClass('hasDatepicker') 

然後我用的代碼下面一行,並返回我真的

$("input[id='metaField_932.value']").hasClass('hasDatepicker') 

任何人都可以解釋爲什麼發生這種情況。

注意:代碼中沒有id重複。

+0

你可以張貼HTML? – BeNdErR

回答

4

嘗試

$("#metaField_932\\.value").hasClass('hasDatepicker') 

這是因爲#metaField_932.value與ID metaField_932value類選擇元素。你必須逃避點字符。

+0

工作感謝..... –

+0

感謝您的解釋。它真的幫助 –

+0

@ Ahmad.Mood你不客氣。 – F0G

1

逃生.通過\因爲你正在尋找idclassselector.搜索一個class像preceeded,

$("input[id='metaField_932\.value']").hasClass('hasDatepicker') 

或者

$('#metaField_932\\.value').hasClass('hasDatepicker') 
4

你的第一行看對於如下所示的HTML元素:

<input id="metaField_392" class="value"> 

而第二個是尋找一個看起來更像你的實際的HTML元素:

<input id="metaField_392.value"> 

與它.任何選擇表明它是尋找一個元素與特定class

要解決這個問題,我建議不管是使用第二個選擇器,還是僅僅從元素的id中刪除句點,因爲這使得它不清楚。

1

選擇器#metaField_932.value搜索ID爲metaField_932和類別value的元素。你需要通過別人的答案給出逃脫.字符。

0

首先讓分析你傳遞給jQuery的第一個代碼

#metaField_932.value

如果你在它仔細看的選擇,就意味着選擇與ID的元素爲metaField_932和類爲value。由於沒有這樣的元素存在第一個代碼沒有第二一段代碼返回任何

現在的作品,因爲它的屬性選擇,它不會有這樣的困惑。

正如F0G已經解釋了,你將不得不逃離.\\這樣的jQuery能夠解釋整個選擇作爲ID

因此$("#metaField_932\\.value").hasClass('hasDatepicker')應當制定