在JavaScript中使用数据属性
Using data attributes in JavaScript
本文关键字:数据属性 JavaScript 更新时间:2023-09-26
我正在尝试使用data属性将页面更改为索引网页中所选产品的详细信息。这些是我目前正在使用的功能。这是有效的,但它只会显示文档的内部HTML。而我想要关于对象的所有数据,这些数据存储在一个名为data-detail
的数据属性中。responseText类似于以下内容:
data-detail='{"ID":"1", "Name":"Some Name", "Description":"Some Description", "Price":"100", "Photo":"SomePath/AnotherPath/Image.png"}'
function displayItems(results){
article = document.getElementById("homeSection");
string = '<h1>Company Name</h1><h2>Why not try these products?</h2>';
for(var i=0; i<results.length; i++){
var price = parseFloat(results[i].Price);
var sec = document.createElement("section");
sec.classList.add("homeItem");
sec.dataset.detail = JSON.stringify(results[i]);
article.appendChild(sec);
sec.innerHTML = '<div class="imageContainer"><img class="resultsImage" src="' + results[i].Photo + '"></div><p class="resultsName">' + results[i].Name + '</p><p class="resultsPrice">£' + price.toFixed(2) + '</p>';
var items = document.querySelectorAll(".homeItem");
for(i=0; i<items.length; i++){
items[i].addEventListener("click", selectedProduct);
}
}
}
function selectedProduct(event){
target = event.currentTarget;
homeSection = document.getElementById("homeSection");
console.log(target.detail.ID);
homeSection.innerHTML = target.innerHTML;
}
单击某个元素后,控制台会告诉我,通过selectedProduct
函数中的第三行进行解析后,data.detail是未定义的。我想知道是否有人能告诉我为什么会这样,我是否很傻,没有发现问题。
由于只能存储字符串值,因此在获取值后,需要通过调用JSON.parse()将其转换回对象。在设置值时,还需要使用dataset来获取值。
function selectedProduct(event){
target = event.currentTarget;
homeSection = document.getElementById("homeSection");
console.log(JSON.parse(target.dataset.detail).ID);
homeSection.innerHTML = target.innerHTML;
}
相关文章:
- JavaScript-获取数据属性的值返回未定义的值
- 使用Javascript而不是html数据属性配置Parsley
- 在JavaScript中使用数据属性
- 添加数据属性及其值以使用纯javascript进行链接
- 获取javascript中的元数据属性
- JavaScript / jquery:如果选择了单选按钮并且数据属性符合条件,则添加类
- 如何使用ParsleyJS 2.*使用javascript而不是数据属性
- Javascript:如何将带有html内容的变量注入到附加的数据属性中
- 数据属性中的Javascript正则表达式
- html数据属性在firefox中使用javascript时没有按预期显示,但在chrome中显示正确
- 基于 html5 数据属性值创建 JavaScript 对象是否是一种好的做法
- 如何使用 JavaScript 使自定义数据属性值成为数字
- 如何将javascript对象或JSON存储在使用html5数据属性的html元素中
- 通过内联数据属性传递Javascript函数
- 如何使用 javascript 返回数据属性数组
- 隐藏由多数据属性与现有变量匹配 jQuery/JavaScript
- Vanilla JavaScript - 用于将类添加到具有特定数据属性的元素的语法
- 使用php和javascript进行编码和解码以及数据属性验证
- 将html5数据属性与javascript结合使用是否风格良好
- 自定义数据属性 - JavaScript - 如何从节点列表中选择元素