0

我究竟做错了什么?请在此处查看我的简化小提琴:

http://jsfiddle.net/a2q815fq/4/

function change() {
  $('#mainmenu3').prop('data-badge','444');
}

应该将数据徽章更改为“444”,但不是吗?!

我想我在做一些非常愚蠢的事情,但我看不到它!

编辑:感谢您的回答。我认为,小提琴中的某些东西不起作用,因为简单的“警报('test')”不起作用?!是否应该对函数“change()”进行不同的调用?

再次编辑:thx,attr() 正在工作,而 prop() 没有。但是,如果我选择删除它,removeAttr() 应该适用吗?但没有 - 见这里:http: //jsfiddle.net/a2q815fq/19/

最后编辑:正如 SultanBaby 提到的,选择器不正确。应该是:#mainmenu3 a[data-badge]!谢谢你们,你们让我开心!

4

3 回答 3

2

使用.data('badge', 444).attr('data-badge', 444)

于 2015-01-03T15:11:39.207 回答
1

在回答之前我没有看到小提琴,我的回答是错误的。嘿,首先你的选择器是错误的。正确的选择器应该是"#mainmenu3 a[data-badge]"并且您应该attr像我之前正确提到的那样使用:

$('#mainmenu3 a[data-badge]').attr('data-badge','444');

我之前还提到过,它可以data-badge作为有效属性但不是属性。

于 2015-01-03T15:15:10.403 回答
0

你要这个:

function change() {
  $('#mainmenu3 a').attr('data-badge','444');
}

因为该属性是锚点,而不是列表项元素。在这里更新了小提琴链接。

PS:如果我省略了选择器的部分,它似乎也可以工作a,但是在这种情况下,您的标记将有缺陷,它恰好看起来正确

于 2015-01-03T15:12:44.877 回答