jQuery的prop()方法疑问

HTML

<div id="n1">
    <p id="n2" class="demo test" data-key="UUID" data_value="1235456465">CodePlayer</p>
    <input id="n3" name="order_id" type="checkbox" value="1">
    <input id="n4" name="order_id" type="checkbox" checked="checked" value="2">
</div>

JS

var $n2 = $("#n2");
document.writeln( $n2.prop("data-key") ); // undefined
document.writeln( $n2.prop("data_value") ); // undefined

我想问的是,为什么prop()两次调用获取到的值都是undefined呢?$n2.prop('data-key')不应该返回'UUID'吗?$n2.prop('data_value')不应该返回12345456465吗?这两个属性在p元素里面都有呀,有哪位能解答下吗?谢谢啦(づ。◕‿‿◕。)づ

阅读 3.7k
4 个回答

prop不能够获取自定义属性,只能获取元素固有属性,所以建议操作默认拥有的属性用.prop()方法,操作自定义属性用.attr()方法

应该用attr吧,不行直接用data取

<div data-key="xxx">
用data('key')

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法;对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。明显此处应该用attr

建议自定义属性使用attr(),原有属性使用 prop()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题