为什么当我在调试器中看到更改时,元素的属性没有显示为已更改

Why does my element not show as having it's attribute changed when I see the change in the debugger?

本文关键字:属性 元素 显示 调试器 为什么      更新时间:2023-09-26

我有以下HTML:

<div class="button accessLink" id="loginLink" data-action="Login" 
data-dialog="access" data-disabled="no" data-entity="n/a" 
data-href="/User/Access/Login" title="Login" 
style="-webkit-user-select: none;" data-title="Login">Login</div>

我有一些代码,当我通过调试器时,我看到下面的get$(targetSelector)设置为#loginLink时执行。

$(targetSelector).attr('data-disabled', 'yes');

当我再次检查与chrome开发人员工具,然后我看到:

<div class="button accessLink" id="loginLink" data-action="Login" 
data-dialog="access" data-disabled="no" data-entity="n/a" 
data-href="/User/Access/Login" title="Login" 
style="-webkit-user-select: none;" data-title="Login">Login</div>

有人能解释一下为什么data-disabled似乎没有改变吗?

您的debugger可能不是refreshing更改的值,或者您可能错过了一些东西,您需要打印它们以查看更改,例如使用alert。你的语句似乎是正确的,并且正在改变属性。

现场演示

$('#loginLink').attr('data-disabled', 'yes');    
alert($('#loginLink').attr('data-disabled'));

你试图改变数据属性和jQuery给你data()函数来设置和获取数据属性,所以你会使用data()而不是attr()。

现场演示

$('#loginLink').data('disabled', 'yes');
alert($('#loginLink').data('disabled'));

就像这样试试

   $('#loginLink').data('disabled', 'yes');