我做错了什么?请在这里查看我的简化小提琴:
http://jsfiddle.net/a2q815fq/4/
function change() {
$('#mainmenu3').prop('data-badge','444');
}
应该将数据徽章更改为" 444",但不是吗?!
我认为我做的事情非常愚蠢,但我无法看到它!
编辑:谢谢你的回答。我认为,小提琴中的某些东西不起作用,因为一个简单的警报('测试')"不起作用?!是否应该对函数进行不同的调用" change()"?再次编辑:thx,attr()正在工作,而prop()没有。但是,如果我选择删除它,removeAttr()应该适用它吗?但是没有 - 看到这里: http://jsfiddle.net/a2q815fq/19/
LAST-EDIT:正如SultanBaby所说,选择器不正确。应该是:#mainmenu3 a [数据徽章]!谢谢你们,你们让我的一天成功!
答案 0 :(得分:2)
使用.data('badge', 444)
或.attr('data-badge', 444)
答案 1 :(得分:1)
在回答之前我没有看到小提琴,我的回答是错误的。嘿,你的选择器首先是错误的。正确的选择器应该是"#mainmenu3 a[data-badge]"
,您应该像我之前正确提到的那样使用attr
:
$('#mainmenu3 a[data-badge]').attr('data-badge','444');
我之前也提到data-badge
有资格作为有效属性,但不属于属性。
答案 2 :(得分:0)
你想要这个:
function change() {
$('#mainmenu3 a').attr('data-badge','444');
}
因为属性是锚点,而不是列表项元素。更新了小提琴链接here。
PS:如果我遗漏选择器的a
部分似乎也有效,但是在这种情况下,你的标记会有缺陷,只是看起来正确。< / p>