行。我有点像菜鸟......但不是那个noob-ish。 :)
我希望在jQuery中完成一个find(),它具有类似点符号或“&&”的结果。这是一个例子(不起作用):
data.find("continent_country[id = 'us'].state[id = 'in']").each(function(){
// what to do
}
或
data.find("continent_country[id = 'us'] && state[id = 'in']").each(function(){
// what to do
}
我被告知要尝试逗号,如下:
data.find("continent_country[id = 'us'], state[id = 'in']").each(function(){
// what to do
}
...但是这会返回错误的项目。
我的XML看起来像这样:
<continent_country id="us" name="U.S.">
<state id="al" name="Alabama">
<city url="" name="auburn"/>
<city url="" name="birmingham"/>
<city url="" name="dothan"/>
<city url="" name="florence / muscle shoals"/>
<city url="" name="gadsden-anniston"/>
<city url="" name="huntsville / decatur"/>
<city url="" name="mobile"/>
<city url="" name="montgomery"/>
<city url="" name="tuscaloosa"/>
</state>
<state>//more states</states>
</continent_country>
</continent_country id="eu" name="Europe">
<state>//more states</states>
</continent_country>
某些州/省/国家/地区拥有相同的ID,这就是为什么我想在指定的continent_country中找到州。
提前致谢...
答案 0 :(得分:4)
我想你想要孩子记谱法:
http://api.jquery.com/child-selector/
类似
data.find('continent_country[id = 'us'] > state[id='in']).each(function(){
//do your stuff here
}
答案 1 :(得分:1)
你可以使用add()
方法,根据新的选择器为选择添加更多元素,例如
data.find("continent_country[id = 'us']").add("state[id = 'in']").each(function(){
// what to do
}
答案 2 :(得分:0)
您可以使用:has
选择器,.has
功能,也可以选择州内最近的continent_country
。这是has
函数,可能效率最高。
data.find("continent_country[id='us']").has("state[id='in']")
假设您想要获取<continent_country>
元素...如果我误解了您想要获取<state>
元素,请使用空格:
data.find("continent_country[id='us'] state[id='in']")
答案 3 :(得分:0)
您可以尝试.has()
方法吗?
data.find("continent_country[id = 'us']").has("state[id = 'in']").each(function(){
// what to do
}
这应该有效。
答案 4 :(得分:-1)
如果您想在某个国家/地区内使用州,则应使用descendant selector continent_country[id='us'] state[id='in']
或child selector:continent_country[id='us'] > state[id='in']
您应该详细了解jquery selectors