是否有办法为页面上的不同元素执行相同的代码?

$('.class1').click(function() {
   some_function();
});

$('.class2').click(function() {
   some_function();
});

相反,你可以这样做:

$('.class1').$('.class2').click(function() {
   some_function();
});

谢谢


当前回答

如果你有或想保持你的元素作为变量(jQuery对象),你也可以循环它们:

var $class1 = $('.class1');
var $class2 = $('.class2');

$([$class1,$class2]).each(function() {
    $(this).on('click', function(e) {
        some_function();
    });
});

其他回答

只需使用$('。Myclass1, .myclass2, .myclass3')用于多个选择器。同样,你也不需要lambda函数来将现有的函数绑定到click事件。

我们也可以像下面这样编码,我在这里使用了模糊事件。

$("#proprice, #proqty").blur(function(){
      var price=$("#proprice").val();
      var qty=$("#proqty").val();
      if(price != '' || qty != '')
      {
          $("#totalprice").val(qty*price);
      }
  });

如果你有或想保持你的元素作为变量(jQuery对象),你也可以循环它们:

var $class1 = $('.class1');
var $class2 = $('.class2');

$([$class1,$class2]).each(function() {
    $(this).on('click', function(e) {
        some_function();
    });
});
$('.class1, .class2').on('click', some_function);

Or:

$('.class1').add('.class2').on('click', some_function);

这也适用于现有的对象:

const $class1 = $('.class1');
const $class2 = $('.class2');
$class1.add($class2).on('click', some_function);

除了上面的优秀示例和答案之外,您还可以使用它们的类对两个不同的元素进行“查找”。例如:

<div class="parent">
<div class="child1">Hello</div>
<div class="child2">World</div>
</div>

<script>
var x = jQuery('.parent').find('.child1, .child2').text();
console.log(x);
</script>

这应该输出“HelloWorld”。