Javascript jQuery只应用于单个按钮,而不是它的所有实例

Javascript jQuery只应用于单个按钮,而不是它的所有实例,javascript,jquery,html,Javascript,Jquery,Html,我有一个页面,页面上有许多动态按钮,所有按钮的id都是“delete button”。我的jQuery工作得很好,但只在第一个实例“删除按钮”上运行 是什么感冒引起的?不能有多个按钮具有相同的id吗?如果有多个元素具有相同的id,id选择器将只获取第一个。您应该改用类名。e、 g $('.delete_button').mouseleave(... 如果有多个元素具有相同的id,则id选择器将只获取第一个元素。您应该改用类名。e、 g $('.delete_button').mouseleav

我有一个页面,页面上有许多动态按钮,所有按钮的id都是“delete button”。我的jQuery工作得很好,但只在第一个实例“删除按钮”上运行


是什么感冒引起的?不能有多个按钮具有相同的id吗?

如果有多个元素具有相同的id,id选择器将只获取第一个。您应该改用类名。e、 g

$('.delete_button').mouseleave(...

如果有多个元素具有相同的id,则id选择器将只获取第一个元素。您应该改用类名。e、 g

$('.delete_button').mouseleave(...

Id应该是唯一的(只有一个)。改用.delete_按钮class

    <button id="delete_button1" class="delete_button"></button>
    <button id="delete_button2" class="delete_button"></button>
    ....
    <button id="delete_buttonN" class="delete_button"></button>

    $(function(){
     $('body').on('mouseenter', '.delete_button', function() {
        $(this).closest('tr').css({
                                  'border-left' : 'solid',
                                  'border-left-width' : '2px',
                                  'border-left-color' : '#dd3333'
                                 });
     });

     $('body').on('mouseleave', '.delete_button', function() {
        $(this).closest('tr').css('border-style', 'none');
     });
    });

....
$(函数(){
$('body')。在('mouseenter','上。删除按钮',函数(){
$(this).closest('tr').css({
“左边框”:“实心”,
“边框左宽度”:“2px”,
“左边框颜色”:“dd3333”
});
});
$('body')。在('mouseleave','上。删除按钮',函数(){
$(this).closest('tr').css('border-style','none');
});
});

Id应该是唯一的(只有一个)。改用.delete_按钮class

    <button id="delete_button1" class="delete_button"></button>
    <button id="delete_button2" class="delete_button"></button>
    ....
    <button id="delete_buttonN" class="delete_button"></button>

    $(function(){
     $('body').on('mouseenter', '.delete_button', function() {
        $(this).closest('tr').css({
                                  'border-left' : 'solid',
                                  'border-left-width' : '2px',
                                  'border-left-color' : '#dd3333'
                                 });
     });

     $('body').on('mouseleave', '.delete_button', function() {
        $(this).closest('tr').css('border-style', 'none');
     });
    });

....
$(函数(){
$('body')。在('mouseenter','上。删除按钮',函数(){
$(this).closest('tr').css({
“左边框”:“实心”,
“边框左宽度”:“2px”,
“左边框颜色”:“dd3333”
});
});
$('body')。在('mouseleave','上。删除按钮',函数(){
$(this).closest('tr').css('border-style','none');
});
});

两个答案都是正确的,但要详细说明这一点,只需一点。有效的html规定在给定页面的多个元素上不能有相同的id。Id是元素的唯一标识符。Jquery将此视为页面上实际上只能有一个id,因此一旦找到一个id选择器,它将停止在dom中查找更多与id选择器匹配的元素。如果要将逻辑应用于具有相同调用的多个元素,则必须为这些元素分配一个类,因为它们将被多次使用。jquery知道这一点,并将找到与类选择器匹配的所有元素

两个答案都是正确的,但要详细说明这一点,只需一点。有效的html规定在给定页面的多个元素上不能有相同的id。Id是元素的唯一标识符。Jquery将此视为页面上实际上只能有一个id,因此一旦找到一个id选择器,它将停止在dom中查找更多与id选择器匹配的元素。如果要将逻辑应用于具有相同调用的多个元素,则必须为这些元素分配一个类,因为它们将被多次使用。jquery知道这一点,并将找到与类选择器匹配的所有元素

您只针对一个按钮,因为ID是唯一的,您只能有一个具有该ID的按钮。您只针对一个按钮,因为ID是唯一的,您只能有一个具有该ID的按钮。