2013-10-31 54 views
1

我有一個HTML代碼:的jQuery〜=工作原理=

<input type='text' value='' name='cid' id='cid_id' action="_cidforsonum_unpaid" placeholder="Client" list="client_list"> 

現在我想讀,如果action包含_cidforsonum_

我曾嘗試以下的jQuery代碼:

if($('input[name=cid][action~="_cidforsonum_"]').length>0){ 
console.log('hello mordekaiser!'); 
} 

,但它的工作原理,在我的情況下,作爲=,因爲它的工作對我來說,當它是action="_cidforsonum_"

回答

1

你需要^ attribute starts with selector

選擇具有指定屬性與指定字符串完全開頭的值 元素。

if($('input[name=cid][action^="_cidforsonum_"]').length>0){ 
    console.log('hello mordekaiser!'); 
} 

~ attribute contains word selector

選擇具有指定屬性與包含給定字,通過空格分隔的值 元件。

您的代碼無法正常工作,

_cidforsonum_unpaid具有後_cidforsonum_

~匹配詞用空格分隔的空間。


在OP的評論後更新。

使用* attribute contains selector

$('input[action*="_cidforsonum_"]') 
+1

謝謝!有效!!但由於它的工作原理,我可能不得不刪除所有較短字符串的下劃線。 –

+1

@FrancisXavierS。Antazo是啊,但'^'也是很好的選擇器和'*'。 –

+0

我剛剛檢查了'*'是如何工作的,並且認爲它更適合我所要完成的工作。謝謝!! –

2

嘗試^,而不是~

$('input[name=cid][action^="_cidforsonum_"]') 

^選擇器選擇dom whoes屬性開頭。

評論響應

你可以做到這一點使用*選擇。

$("input[action*='_cidforsonum_']") 

Official Doc

+0

是的,但我需要檢查它是否包含字符串這樣我就可以標記每個元素的行爲,所以我不會有重複的每一個元素的每個動作。 –

+1

@ FrancisXavierS.Antazo查看我的更新回答.. –