jquery if语句,用于检查元素是否在特定父div中

时间:2012-08-23 04:54:19

标签: javascript jquery if-statement parent children

我的布局中有很多带有.button类的元素。单击带有按钮类的元素后,我需要首先检查元素是否在box1或box2的父div中。

一个简短的例子是......如果点击的按钮位于box1 div&& (另一个条件)然后做一些事情。是否最好使用.closet和.length的组合来检查按钮是否在某个div内?

<div id="box1">
        <div id="column1">
             <div class="round_button"></div>
             <div style="background: #000">
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
             </div>
        </div>
 <div> 

<div id="box2">
        <div id="column2">
             <div class="round_button"></div>
             <div style="background: #000">
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
             </div>
        </div>
 <div> 

5 个答案:

答案 0 :(得分:8)

除了上面的答案,如果有多个按钮,而不是分别将事件绑定到每个按钮,你只想附加一次,根据它的祖先,你可以做这样的事情:

$(".button").click(function() {
  if ($(this).is("#box1 *")) {}
});

答案 1 :(得分:4)

如果两组按钮之间的功能差别很大,我只想在每组按钮上定义事件处理程序:

$('#box1 .button').on('click', function(event) {
  // ...
});

$('#box2 .button').on('click', function(event) {
  // ...
});

答案 2 :(得分:1)

如果没有别的,你不需要if statement

$('#box1, #box2').find('.button').click(function() {
  //  do something
});

答案 3 :(得分:1)

在按钮

的点击事件功能中使用$(this).parents("#box1");

答案 4 :(得分:0)

$('#box1 .button').click(function() {
  // first code
});

$('#box2 .button').click(function() {
  // second code
});