如何在数据属性中添加html元素

时间:2018-08-19 18:47:08

标签: javascript jquery html

我想将整个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属性结果
enter image description here

上面的图片是我的html页面结果

1 个答案:

答案 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>