2011-05-04 97 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/