无法检索数据属性下存储的数据



我正在阅读一个名为 tag_details 的内部数组 如果其长度大于3,则我正在附加点并在与Tagid关联的数据属性下存储数据,以便以后的目的

如果长度大于3,我正在附加数据,如下所示

这是我的代码

displayallVideos(json)
  function displayallVideos(response)
  {
          var videolisthtml = '';
          total_records = response.total_count;
           var span = '';
          for (var i = 0; i < response.Video_details.length; i++)
          {
                  var video_id = response.Video_details[i].video_id;
                  var video_name = response.Video_details[i].video_name;
                  var video_file = response.Video_details[i].video_file;
                  var how_to_video = response.Video_details[i].how_to_video;
                  var video_created_date = response.Video_details[i].video_created_date
                  videolisthtml += '<tr class="portlettr"  id="tagnames'+video_id+'" data-stuff="" data-id="' + video_id + '">
                            <td>' + video_name + '</td>n
                            <td>'+ response.Video_details[i].video_file.split('/').pop() + '</td>n'
                  var vd = response.Video_details[i].Tag_Details;
                  videolisthtml += '<td>n';
                  for (var j = 0; j < vd.length; j++)
                  {
                          var tag_name = vd[j].tag_name;
                            span = '<span class="btn btn-sm btn-success btn-circle"></span> ';
                          if (j < 3)
                          {
                                  videolisthtml += span.split("</span>").join(tag_name + "</span>");
                          }
                          else
                          {
                               span = '<span class="btn btn-sm btn-success btn-circle btnredcolor"></span> ';
                                  var valuefromutility = getcommasperatedvalue(vd);
                                  videolisthtml += span.split("</span>").join('...' + "</span>");
                                     $("#tagnames" + video_id).data('stuff', valuefromutility).attr('data-stuff', JSON.stringify(valuefromutility));
                                  break;
                          }
                  }
                  videolisthtml += '</td>n';
                  videolisthtml += '<td>' + video_created_date + '</td>n
                            </tr>';
          }
          $("#videolisttable tbody").html(videolisthtml);
  }
  function getcommasperatedvalue(arr)
  {
          var arrayafter3elemnts = '';
          for (var i = 0; i < arr.length; i++)
          {
                  if (i > 2)
                  {
                          if (i === arr.length - 1)
                          {
                                  arrayafter3elemnts += arr[i].tag_name;
                          }
                          else
                          {
                                  arrayafter3elemnts += arr[i].tag_name + ',';
                          }
                  }
          }
          return arrayafter3elemnts;
  }

  $(document).on('click', '.btnredcolor', function(event)
{
          var video_id = $(this).closest('.portlettr').data("id");
        var vendoritemsdata = $("#tagnames" + video_id).data('stuff');
        alert(vendoritemsdata);
});

这是我的小提琴

http://jsfiddle.net/cod7ceho/402/

您能告诉我如何解决此

如果您不使用数据属性(即用于JSON字符串等)做任何特别的事情。

数据('Qualt')调用试图解析字符串,但也可以缓存值,因此在再次调用时不会重新检查它。

最重要的是 - 使用该属性时,您的元素实际上是在页面上的,它们只是一串HTML。我将每个元素添加到一个数组中,然后将其迭代在页面上添加它们。

http://jsfiddle.net/cod7ceho/412/

valuesfromutility["#tagnames" + video_id] = valuefromutility;

然后

      if ($(valuesfromutility).length) {
          $.each(valuesfromutility, function(element, value){
              $(element).attr('data-stuff', value);
          });
      }

最新更新