javascript - 过滤 JSON 键值并为呈现的元素分配名称

标签 javascript jquery json ajax

如果这是重复的,我很抱歉,我在任何地方都找不到这个案例。

我有一个 ajax 调用发送到我们的 ldap 服务器,它返回一个 JSON 对象,如下所示: {组: [{dn: "cn=test,ou=security,ou=groups,dc=company,dc=com", isDynamicGroup: true}] 在响应中,这就是我看到的

{dn: "cn=test,ou=security,ou=groups,dc=company,dc=com", 
isDynamicGroup: true}
dn: "cn=test,ou=security,ou=groups,dc=company,dc=com"
isDynamicGroup: true

我能够很好地填充 DOM 元素并设计我们的前端样式,以便用户可以单击组并加载成员。但是,我想做的是过滤掉 isDynamicGroup: false 并为那些与单独的 ID/类匹配的样式提供匹配。主要是让用户知道他们无法发回数据。

这是ajax中的群呼

//Display groups
$(function displayGroupItems() {
  $(document).on('click', '#ldap-tab', function(event) {
    $.ajax({
        url: 'ldap/groups',
        method: 'GET',
        dataType: 'json',
        success: function(data) {
            $.each(data.groups, function(i, dn) {
                $('<li><a id="groupsList" class="panel-block dn-class">' + dn.dn + '</a></li>').appendTo('#groupSearchUl');
            });
        }
    })
  });
});

现在对象正在渲染

<div class="groupsList">
 <ul class="groupSearchUl">
  <li><a id="groupsList" class="panel-block dn-class">groupName</a> 
  </li>
 </ul>
 </div>

我想看看

<div class="groupsList">
 <ul class="groupSearchUl">
  <li><a id="groupsList dynamicgroup" class="panel-block dn- 
   class">groupName</a> 
  </li>
 </ul>
 </div>

最佳答案

要过滤掉 isDynamicGroup 设置为 false 的组,您可以使用:

var dynamicGroups = data.groups.filter(group => group.isDynamicGroup);

如果您只想将类分配给 isDynamicGroup 属性设置为 true 的组,则可以使用类似的内容:

$(function displayGroupItems() {
    $(document).on('click', '#ldap-tab', function(event) {
        $.ajax({
            url: 'ldap/groups',
            method: 'GET',
            dataType: 'json',
            success: function(data) {
                data.groups.forEach(function(group) {
                    var groupClass = "groupsList panel-block dn-class";
                    if (group.isDynamicGroup) {
                        groupClass += " dynamic-group";
                    }
                    $('<li><a class="' + groupClass + '">' + group.dn + '</a></li>').appendTo('#groupSearchUl');
                 });
            })
       });
 });

关于javascript - 过滤 JSON 键值并为呈现的元素分配名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52045552/

相关文章:

javascript - Knockout.JS:从模型到 View 的不同值

jquery - 使用 Data Uri 作为 a 标签的 href

java - 如何使用 Jackson 基于注释从对象中(反)序列化字段?

javascript - 我无法在函数内添加函数

php - 访问ajax/jquery返回的数据并将其放入表单字段

javascript - 在 sinon 中创建一个假的 object.method() "from scratch"?

jquery - 使用jQuery根据数字输入数量显示/隐藏div

javascript - 滚动时透明导航栏出现问题

php - 按月将 JSON 中的值相加,形成 Fusion Charts 图表

javascript - 从elasticsearch创建wordcloud d3.js