如何使用jQuery获取JSON所有标签的类名

扎比

我有一个JSON数据,我想列出divs和内部divs和标签内的类名称的所有属性。

样本JSON数据:

[
  {
    "Field1": "<header class=\"main-header dark-bg\">\n\t\t<div class=\"row\">\n\t\t\t\t<div class=\"col-xl-3\">\n<a class=\"icons-darkbg-slogan main-header__slogan\" data-event_engagement=\"\" data-event_linktype=\"internal page link\" data-event_source=\"DAM|active|de|de|/\" data-event_target=\"/\" data-event_title=\"Header Home::Slogan\" href=\"/\" target=\"_self\" title=\"DWS Homepage\"><img src=\"/globalassets/images/logos/dws_logo_global.svg\" class=\"icon-svg hide-for-print\" alt=\"dws_logo_global\"></a>\n\t\t</div>\n\n\t\t<div class=\"space-9 hide-md\"></div>\n\t</header>"
  }
]

我已经使用children(),但是它没有使用内部类名,我得到的输出是主标题dark-bg row space-9 hide-md使用下面的代码通过将json数据转换为变量

if($(t).children().length > 0){
console.log($(t).children().length);
//OUTPUT SHOWING 2
}
罗里·麦克罗森(Rory McCrossan)

为此,您可以使用一些相对简单的递归来遍历HTML字符串中的DOM树,如下所示:

var data = [{
  "Field1": "<header class=\"main-header dark-bg\">\n\t\t<div class=\"row\">\n\t\t\t\t<div class=\"col-xl-3\">\n<a class=\"icons-darkbg-slogan main-header__slogan\" data-event_engagement=\"\" data-event_linktype=\"internal page link\" data-event_source=\"DAM|active|de|de|/\" data-event_target=\"/\" data-event_title=\"Header Home::Slogan\" href=\"/\" target=\"_self\" title=\"DWS Homepage\"><img src=\"/globalassets/images/logos/dws_logo_global.svg\" class=\"icon-svg hide-for-print\" alt=\"dws_logo_global\"></a>\n\t\t</div>\n\n\t\t<div class=\"space-9 hide-md\"></div>\n\t</header>"
}]

function buildClassArray($el, arr) {
  arr = arr || [];
  $el.each(function() {
    arr.push($(this).prop('class'));
    $(this).children().each(function() {
      buildClassArray($(this), arr);
    })
  });  
  return arr;
}

var classes = buildClassArray($(data[0].Field1));
console.log(classes);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

请注意,如果您希望单个元素上的多个类出现在数组中它们自己的实体中,split()则在将其推送到数组之前,只需添加类字符串即可:

var data = [{
  "Field1": "<header class=\"main-header dark-bg\">\n\t\t<div class=\"row\">\n\t\t\t\t<div class=\"col-xl-3\">\n<a class=\"icons-darkbg-slogan main-header__slogan\" data-event_engagement=\"\" data-event_linktype=\"internal page link\" data-event_source=\"DAM|active|de|de|/\" data-event_target=\"/\" data-event_title=\"Header Home::Slogan\" href=\"/\" target=\"_self\" title=\"DWS Homepage\"><img src=\"/globalassets/images/logos/dws_logo_global.svg\" class=\"icon-svg hide-for-print\" alt=\"dws_logo_global\"></a>\n\t\t</div>\n\n\t\t<div class=\"space-9 hide-md\"></div>\n\t</header>"
}]

function buildClassArray($el, arr) {
  arr = arr || [];
  $el.each(function() {
    arr.push(...$(this).prop('class').split(' '));
    $(this).children().each(function() {
      buildClassArray($(this), arr);
    })
  });  
  return arr;
}
var $el = $(data[0].Field1);
var classes = buildClassArray($el);
console.log(classes);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在jQuery中使用类名获取所有输入值?

如何使用 jquery 获取所有 div 标签类属性

使用jQuery获取具有特定类名的所有选中的复选框

如何使用jQuery中的类选择器获取jQuery中元素的所有类?

如何使用jquery从select标签中的选定选项中获取类名警报?

如何使用php dom从html类中获取所有b标签值

如何在跨度类中获取所有标签innerHTML

如何在Jquery中通过相同的类名获取所有父ID?

如果有类,则使用jQuery获取类名

如何使用jquery从表中获取所有数据,包括输入和选择标签值?

如何使用jQuery在没有特定的CSS类的情况下获取锚标签?

使用jsoup按类名获取所有元素

C#中的RegEx获取具有特定类名的所有SPAN标签

使用相同的标签从JSON获取所有值以列出

如何使用jQuery获取所有ID?

如何使用python获取XML中的所有标签?

如何使用js获取所有标题标签值

如何使用XmlSlurper获取所有子标签作为列表

如何使用Anglesharp从PageSource获取所有img标签

如何使用 GitLabAPI 获取特定分支上的所有标签

使用jQuery获取类名

使用jQuery获取类的所有元素的总和

如何使用jQuery选择所有空的p标签?

如何使用javascript定位所有类。没有jQuery

如何使用Exception在Postgresql上获取所有表名?

如何使用jQuery获取具有某些属性的标签数量?

如何从github api获取所有标签

WordPress:如何获取某个类别的所有帖子中使用的所有标签?

用jQuery获取所有选定的类