我正在使用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 :(得分: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_"]');
^=
是以选择器开头,而|=
是包含前缀选择器。