关于div的课的问题

时间:2011-05-12 15:03:16

标签: jquery html css css-selectors

如果我有这段代码:

 <div id="one">
        <label>first</label> 
        <select name="area" class="area">
        <option selected="selected">First</option>
    </div>

 <div id="two">
        <label>second</label> 
        <select name="area" class="area">
        <option selected="selected">Second</option>
 </div>

有可能是这样的吗?

  $("#one: .area").change(function() {}

or 

 $("#two: .area").change(function() {}

它不起作用,有人可以解释原因吗?

7 个答案:

答案 0 :(得分:4)

尝试:

<div id="one">
        <label>first</label> 
        <select name="area" class="area">
        <option selected="selected">First</option>
         </select>
    </div>

 <div id="two">
        <label>second</label> 
        <select name="area" class="area">
        <option selected="selected">Second</option>
        </select>
 </div>

$("#one select.area").change(function() {}

答案 1 :(得分:3)

删除代码中的: ... $("#one .area") 关闭选择元素</select>

也是一种很好的做法

答案 2 :(得分:3)

这可能是你想要的

$("#one > select.area").change(function() {});

$("#two > select.area").change(function() {}

另外请确保结束您的选择标记。您有以下HTML

<div id="one">
    <label>first</label> 
    <select name="area" class="area">
    <option selected="selected">First</option>
</div>

应该是

<div id="one">
    <label>first</label> 
    <select name="area" class="area">
        <option selected="selected">First</option>
    </select>  <!-- Note the Ending tag for the select -->
</div>

答案 3 :(得分:2)

是的,但您应该删除选择器中的:

$("#one .area").change(function() { alert($(this).val()) });

答案 4 :(得分:2)

您的选择器中还有一个额外的:,请使用:$("#one .area").change(function() {});

请参阅此示例:http://jsfiddle.net/fermin/9YM3a/1/

答案 5 :(得分:0)

如果您询问如何选择.area#one的孩子的#two,那么您几乎可以正确使用它。

$('#one > .area').change(function() {}

>表示“孩子”,因此您将选择.area的孩子#one

答案 6 :(得分:0)

您可以将div设置为范围。

$('.area',$(this).parent('div:one')).change(function() {}