试图通过其名称的前缀获取元素

时间:2011-05-04 11:46:02

标签: javascript jquery

我正在使用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 _”的元素!

4 个答案:

答案 0 :(得分:3)

使用Attribute Starts With Selector

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

答案 1 :(得分:1)

为澄清事情,|=选择器意味着:

  

选择具有的元素   带有值的指定属性   或等于给定的字符串或   以该字符串开头,后跟   连字符( - )

因此,如果你的名字是Addition_-219,那么选择器就可以了。

正如其他人所说,你真正需要的是^=选择器:

  

选择具有的元素   带有值的指定属性   完全用给定的字符串开始

从jQuery文档中获取的信息: http://api.jquery.com/category/selectors/

答案 2 :(得分:0)

尝试这个

var additionsPricesItems = debitPrice.find('table[name^="Addition_"]');
alert(additionsPricesItems.length

答案 3 :(得分:0)

你可以尝试使用它:

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

^=选择器开头,而|=包含前缀选择器。