开发者问题收集

将 queryselectorall 与类一起使用

2017-07-22
3233

我在一个大型 html 文件中有一行 <div class="price-box price-final_price" data-role="priceBox" data-product-id="176">

我需要将 product-id 的值存储在一个变量中,以便我可以全局访问它。

我试图用

var var_productid = document.querySelectorAll('div[data-role="priceBox"]')[0].data-product-id;
来做到这一点

但是它不起作用。我做错了什么?

3个回答

如果您想使用纯 javascript,则可以使用 .getAttribute() 方法

var var_productid = document.querySelectorAll('div[data-role="priceBox"]')[0].getAttribute('data-product-id');

如果您想使用 jquery,可以这样做

var var_productid = $('div[data-role="priceBox"]').eq(0).attr('data-product-id');

CumminUp07
2017-07-22

如果您打算在 javascript 中使用和检索 data_attributes ,则需要使用 dataset ,而不仅仅是数据。此外,要获取 product-id ,您需要使用驼峰式命名法

var var_productid = document.querySelectorAll('div[data-role="priceBox"]')[0].dataset.productId;
console.log(var_productid)
<div class="price-box price-final_price" data-role="priceBox" data-product-id="176"></div>
brk
2017-07-22

var productId = $("div[data-role='priceBox']").attr('data-product-id');

knizer
2017-07-22