如何使用$(this)访问div标签中的特定元素?

时间:2011-10-01 01:45:06

标签: jquery

我有一些javascript允许我在用户更改国家/地区时使用json将状态加载到下拉列表中。除了我在页面上不能有多个国家/州下拉列表组合之外,这种方法很有效。因此,给出如下HTML:

<div id="div1" data-ajax-address="owner">
   <select id="country1" data-ajax-address="country"></select>
   <select id="state1" data-ajax-address="state"></select>
</div>
<div id="div2" data-ajax-address="owner">
    <p>
        <select id="country2" data-ajax-address="country"></select>
    </p>
    <p>
        <select id="state2" data-ajax-address="state"></select>
    </p>
</div>

我希望能够做到这样的事情:

$('div[data-ajax-address="owner"]').each(function() {
    $(this).children('select[data-ajax-address="country"]).change(function() {
        ....
    });
});

访问div中的国家/州选择元素。我不能使用children()因为它们可以嵌入到另一个元素中 - 比如country2&amp; state2嵌入在段落标记内。

关于如何实现这一目标的任何想法?

感谢。

2 个答案:

答案 0 :(得分:2)

尝试类似:

$('div[data-ajax-address="owner"]').each(function() {
    $(this).find('select[data-ajax-address="country"]').change(function() {
        ....
    });
});

更多信息:http://api.jquery.com/find/

答案 1 :(得分:0)

如果您愿意,可以直接选择后代:

    $('div[data-ajax-address="owner"] select[data-ajax-address="country"]').change(function() {...});

更短且相同的精度