是否有办法为页面上的不同元素执行相同的代码?
$('.class1').click(function() {
some_function();
});
$('.class2').click(function() {
some_function();
});
相反,你可以这样做:
$('.class1').$('.class2').click(function() {
some_function();
});
谢谢
是否有办法为页面上的不同元素执行相同的代码?
$('.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();
});
});
其他回答
除了上面的优秀示例和答案之外,您还可以使用它们的类对两个不同的元素进行“查找”。例如:
<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”。
我有一个指向包含许多输入字段的对象的链接,这需要由相同的事件处理。因此,我简单地使用find()来获取所有需要具有事件的内部对象
var form = $('<form></form>');
// ... apending several input fields
form.find('input').on('change', onInputChange);
如果你的对象在链接的下一级children()而不是find()方法可以使用。
我通常用on代替click。它允许我向特定函数添加更多的事件侦听器。
$(document).on("click touchend", ".class1, .class2, .class3", function () {
//do stuff
});
$('.class1, .class2').click(some_function);
确保你输入了一个像$('的空格。Class1,空格。class2')否则不行。
如果你有或想保持你的元素作为变量(jQuery对象),你也可以循环它们:
var $class1 = $('.class1');
var $class2 = $('.class2');
$([$class1,$class2]).each(function() {
$(this).on('click', function(e) {
some_function();
});
});