按ID或类名过滤.click()对象

时间:2019-01-20 15:50:57

标签: javascript

如何从点击操作中过滤出一个对象? 我想防止Firefox href在复选框上传播,但是我在html上还有其他输入,按原样实施的方式将阻止我的输入提交:

<a href="picture-big.jpg">
      <img src="https://imgur.com/gallery/DC0Iu" />
      <input type="checkbox" name="delete" id="stopprop1"/>
      <input type="checkbox" name="delete" id="stopprop"/>
      <input type="checkbox" name="delete" class="stopprop"/>
      <input type="checkbox" name="delete" class="stopprop"/>
      <input type="checkbox" name="delete" class="stopprop"/>
</a>

JS:

$('input').click(function(e) {
      e.preventDefault();
      var _this = this;
      console.log(_this.getElementById('stopprop'))
      setTimeout(function() { 
        _this.checked = !_this.checked; 
      }, 1);
});

我可以过滤对象吗?并且如果e具有class或id x,则阻止该内容的href传播。

同一页面上的其他一些输入按钮被阻止提交。

<div class="cell empty" data-title="">
<input type="submit" class="recover-css" name="recover_vms" value="RECOVER" />
</div>

1 个答案:

答案 0 :(得分:0)

<a>标记中不能包含input。但出于您的疑问:

对于class使用id,对于$(e.target).attr('id')使用id,则可以使用jQuery获得单击元素的$(e.target).attr('class')class < / p>

因此您的代码可能如下所示:

    $('input').click(function(e) {
      if ($(e.target).attr('id') === 'someid') {
        //do something
      }
      if ($(e.target).attr('class') === 'someclass') {
        //do something else
      }
    });