1

我有以下 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>

我有一些代码,当我单步执行调试器时,我看到在 $(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 似乎没有改变吗?

4

2 回答 2

2

debugger可能没有refreshing更改值,或者您可能遗漏了某些内容,您需要打印它们以查看更改,例如使用警报。您的陈述似乎正确并且正在更改属性。

现场演示

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

您正在尝试更改数据属性,而 jQuery 为您提供了 data() 函数来设置和获取数据属性,因此您可以使用 data() 而不是 attr()。

现场演示

$('#loginLink').data('disabled', 'yes');
alert($('#loginLink').data('disabled'));
于 2012-12-29T06:40:25.190 回答
0

试试这样

   $('#loginLink').data('disabled', 'yes');
于 2012-12-29T06:47:51.477 回答