2011-05-04 70 views
1

我正在使用jquery 1.3.2。
這是我的代碼:試圖通過其名稱的前綴獲取元素

var additionsPricesItems = debitPrice.find('table[name|=Addition_]'); 

debitPrice持有以下結構:

<DIV name="DebitPrice"><SELECT name=CustomerSelect><OPTION value=5264>5113575921</OPTION></SELECT><BR><A jQuery1304508596343="43">הסר מחיר חיוב</A> 
<TABLE class=PriceBox name="TaskPrice" jQuery1304508596343="45"> 
<TBODY> 
<TR> 
<TD class=SubTitle colSpan=2>debit price: </TD></TR> 
<TR> 
<TD>price: </TD> 
<TD><INPUT value=11 type=text name=PriceInput jQuery1304508596343="44"><SELECT class=Small><OPTION selected value="">$</OPTION></SELECT></TD></TR> 
<TR> 
<TD>by unit: </TD> 
<TD><SELECT class=Big name=UnitTypeSelect><OPTION selected value="">none</OPTION><OPTION value=QUANTITY>quantity</OPTION><OPTION value=VOLUME>volume</OPTION><OPTION value=WEIGHT>weight</OPTION></SELECT></TD></TR></TBODY></TABLE> 
<TABLE class=PriceBox name="Addition_219" jQuery1304508596343="350"> 
<TBODY> 
<TR> 
<TD class=SubTitle colSpan=2>addition price: </TD></TR> 
<TR> 
<TD>price: </TD> 
<TD><INPUT value=12 type=text name=PriceInput jQuery1304508596343="349"><SELECT class=Small><OPTION selected value="">$</OPTION></SELECT></TD></TR> 
<TR> 
<TD>by unit: </TD> 
<TD><SELECT class=Big name=UnitTypeSelect><OPTION value="">none</OPTION><OPTION selected value=QUANTITY>quantity</OPTION></SELECT></TD></TR></TBODY></TABLE></DIV> 

出於某種原因,additionsPricesItems.length等於零 - jQuery的沒有按;噸找到任何匹配的元素。但是有一個名稱前綴爲「Addition_」的元素!

+0

你嘗試啓動與選擇器? '.find( '表[名^ = 「添加_」]')'。 – 2011-05-04 11:47:55

+0

@rudi_visser:^ =和| =是什麼區別? – Naor 2011-05-04 11:48:50

+0

'^ ='開頭,'| ='包含。它*不應該有所作爲,但你永遠不知道。 – 2011-05-04 11:49:37

回答

0

你可以嘗試使用這個:

debitPrice.find('table[name^="Addition_"]'); 

^=開始與選擇,而|=包含前綴選擇器。

0

試試這個

​​
1

爲了澄清事項外,|=選擇器裝置:

選擇具有與值 的 指定的屬性的元素或者等於一個給定的字符串或 開始以該字符串隨後 連字符( - )

所以,如果你的名字應該是Addition_-219選擇器會工作。

你真正需要的是別人已經說過是^=選擇是:

選擇具有的 指定的屬性與給定的字符串完全開頭的值 採取

信息元素從jQuery文檔: http://api.jquery.com/category/selectors/

相關問題