<LI class="bb-dotimg clearfix song-item-hook " data-songitem='{"songItem":{"sid":30858778,"author":"Pierre Boulez","sname":"Figures, Doubles, Prismes"}}' sizset="9" jQuery17207283194979385978="7" sizcache06129649435184743="5"></LI>
如上的这段html代码,我已经获取对li对象的引用,假定为obj, 那如何获取data-songitem属性的内容呢?我引用obj.data-songitem引发了异常,提示没有这个属性。大侠给指点下?
没有一个答案是对的,我这中情况根本用不了jquery,我总不能为了获取这一个属性注入jquery。答案很简单:obj["song-item"]
1 var demo=dom document.querySelector('clearfix'); 2 //你使用了html5的data,所以可以使用这种方式 3 console.log(demo.dataset.songitem); 4 //原生js 5 demo.attribute('data-songitem')//取出来的数据是字符串,需要你自己转换json
而你自己的方案,蠢到爆了,非常讨厌这种针对Element不太规范的写法。
第一行代码写错了:
var demo=document.querySelector('.clearfix');
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" src="jquery-1.10.2.js"></script>
<script type="text/javascript">
$(function () {
alert($("#lidata").attr("data-songitem"));
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<li id="lidata" class="bb-dotimg clearfix song-item-hook " data-songitem='{"songItem":{"sid":30858778,"author":"Pierre Boulez","sname":"Figures, Doubles, Prismes"}}' sizset="9" jquery17207283194979385978="7" sizcache06129649435184743="5">123</li>
</div>
</form>
</body>
</html>
这样可以 测试过了
alert($("#lidata").attr("data-songitem"));
obj.dataset.songitem
如果是jq的话,像一楼的:var data = $("#lidata").attr("data-songitem");
js: var Div = document.getElementById("lidata");
var data = Div.getAttribute("data-songitem");
getAttribute("data-songitem");