我现在正在使用 jquery 来获取 id 的值,如下面的代码所示:
<ul class="trf noborder" data-id="6581">
</ul>
var ID = $("ul.trf").data('id');
如何使用纯 javascript 做到这一点?我需要添加一个跨度类还是什么?
泰
我现在正在使用 jquery 来获取 id 的值,如下面的代码所示:
<ul class="trf noborder" data-id="6581">
</ul>
var ID = $("ul.trf").data('id');
如何使用纯 javascript 做到这一点?我需要添加一个跨度类还是什么?
泰
您可以
element.getAttribute('attribute_name')
在纯 JavaScript 中使用来获取任何数据属性值的值。
示例可以在这里找到: 点击这里
根据您的需求和期望的性能,有几种方法可以使用纯 javascript 来实现。这是使用 ID 的一种方法:
<ul class="trf noborder" data-id="6581" id="myDiv">
</ul>
<script type="text/javascript">
var id = document.getElementById("myDiv").getAttribute("data-id");
</script>
或者,如果您想在没有任何 ID 的情况下定位特定 UL,您可以尝试此操作
<ul class="trf noborder" data-id="6581">
</ul>
<script type="text/javascript">
var id = document.getElementsByTagName("ul")[0].getAttribute("data-id");
</script>
但是您必须确保使用正确的索引,在这里它将检索您页面上的第一个 UL。您也可以将其包装在另一个容器中:
<div id="container">
<ul class="trf noborder" data-id="6581"></ul>
</div>
<script type="text/javascript">
var container = document.getElementById("container");
var id = container.getElementsByTagName("ul")[0].getAttribute("data-id");
</script>
它将使用该容器内的第一个 UL。或者第三个,如果你这样做:
var id = container.getElementsByTagName("ul")[2].getAttribute("data-id");
它基于数组索引,在这种情况下为 2(0、1、2 = 第三个元素)
如果您不想要 jQuery 但仍愿意使用库,请查看http://sizzlejs.com,这是一个很棒的选择器引擎(实际上由 jQuery 使用)。使用 Sizzle,您可以这样做:
var id = Sizzle("ul[data-id]")[0].getAttribute("data-id");
获取指定了 data-id 属性的页面上第一个 UL 的 data-id。
您可以使用getAttribute函数读取属性。但是您应该收集元素本身,调用 getElementById 或 getElementsByTagname 函数。
getData: function(el, attr) {
attr = 'data-' + attr;
var result = (el.getAttribute && el.getAttribute(attr)) || null;
if(!result) {
var attrs = el.attributes;
var length = attrs.length;
for(var i = 0; i < length; i++)
if(attrs[i].nodeName === attr)
result = attrs[i].nodeValue;
}
return result;
}
var el = document.getElementsByClassName('trf')[0];
var id = getData(el, 'id');