jQuery多点选择器带点符号?

时间:2012-03-05 15:30:18

标签: jquery xml jquery-selectors

行。我有点像菜鸟......但不是那个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中找到州。

提前致谢...

5 个答案:

答案 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 selectorcontinent_country[id='us'] > state[id='in']

您应该详细了解jquery selectors