我想将整个html元素添加到data属性,以便在单击时将其设置为localstorage并可以在下一页上使用它,而不必在下一页上再次做同样的事情...
< / p>
这是我在做什么...
检查img_src是否具有值
如果为false,则将其设置为带有字母X和某些样式的div
如果为true,则将img标签设置为src并设置一些宽度和高度
var img_src="userpic.png"; //this value comes from db
if(img_src=="" || img_src==null){
var po_img = '<div class="class-groupPic bg-1">X</div>';
}
else{
var po_img = '<img src="'+element.student.photo+'" width="34" height="34"/>';
}
<div class="col" data-img="'+po_img+'" data-religion="Hindu" data-category="OBC"></div>
点击时的jQuery
$(".col").on('click',function(){
window.localStorage.setItem('img',$(this).data('img'));
window.localStorage.setItem('religion',$(this).data('religion'));
window.localStorage.setItem('category',$(this).data('category'));
});
上面的图片是我的html页面结果
答案 0 :(得分:1)
一种可行的解决方案是使用jQuerys构造函数创建元素,然后使用这些元素设置data-
属性来存储它。此示例有效,并且似乎可以满足您的要求。
var img_src = "userpic.png"; //this value comes from db
var element = {
student: {
photo: "myImage.com"
}
}; // for this example only
var $po_img;
if (img_src == "" || img_src == null) {
$po_img = $('<div>', { class: "class-groupPic bg-1"});
$po_img.text("X");
} else {
$po_img = $('<img/>', {src: element.student.photo, width: 34, height: 34});
}
var $myDiv = $('<div/>', { id: "myDiv", class: "col"});
$myDiv.text("I am the div");
$myDiv.attr("data-img", $po_img[0].outerHTML);
$myDiv.attr("data-religion", "Hindu");
$myDiv.attr("data-category", "OBC");
// add the div to the DOM
document.write($myDiv[0].outerHTML);
// Retrieve the img HTML from the div's data attribute
var theImage = $("#myDiv").attr("data-img");
console.log(theImage);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>