如何提取存储在 jQuery 数组中的对象属性并将它们放入另一个变量中

How to extract object properties that are stored in an array in jQuery and place them into another variable

我正在尝试从对象数组中提取对象属性并将它们存储在将添加到 HTML 对象的变量中。当我执行此操作时,当前正在发生什么,只是在没有图标变量内容的情况下创建。在控制台中,它将图标记录为 [object object]。这是我的 jsfiddle,这是我的代码。

var dHtml = "";

var fieldTypes = [ 
    {"label":"Text", "icon":"abc-icon", "cls":"text-class"},
    {"label":"Date", "icon":"calendar-icon", "cls":"date-class"},
    {"label":"Radio", "icon":"radio-icon", "cls":"radio-class"},
    {"label":"Checkbox", "icon":"checkbox-icon", "cls":"checkbox-class"},
    {"label":"Selector", "icon":"dropdown-icon", "cls":"selector-class"},
    {"label":"Telephone", "icon":"telephone-icon", "cls":"telephone-class"}
];

var icon = jQuery.each(fieldTypes, function(l,ll) {
    console.log(ll.icon);
});

for (i = 0; i < fieldTypes.length; i++) {

    dHtml += "<div style='padding-top:6px; padding-right:5px;' id='drag'><div id='" + icon + "'></div></div>";
};

jQuery('#pop').html(dHtml);

为什么要把它存储在一个单独的变量中。只需使用 JQuery 迭代 fieldTypes 并将字段 icon 的值附加到 dHtml.

$.each(fieldTypes, function(i, ll){
   dHtml += "<div style='padding-top:6px; padding-right:5px;' id='drag'><div id='" + ll.icon + "'></div></div>";
});

您可以通过其他方式创建一个数组icons 来存储所有图标的值,稍后您可以使用它。

示例代码:

var icons = [];

$.each(fieldTypes, function(l,ll) {
    icons.push(ll.icon);
});

运行 打印所有图标的示例代码。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>

var dHtml = "";

var icons = [];

var fieldTypes = [ 
    {"label":"Text", "icon":"abc-icon", "cls":"text-class"},
    {"label":"Date", "icon":"calendar-icon", "cls":"date-class"},
    {"label":"Radio", "icon":"radio-icon", "cls":"radio-class"},
    {"label":"Checkbox", "icon":"checkbox-icon", "cls":"checkbox-class"},
    {"label":"Selector", "icon":"dropdown-icon", "cls":"selector-class"},
    {"label":"Telephone", "icon":"telephone-icon", "cls":"telephone-class"}
];

$.each(fieldTypes, function(l,ll) {
    icons.push(ll.icon);
});


$.each(icons, function(i, icon){
   dHtml += "<div style='padding-top:6px; padding-right:5px;' id='drag'><div id='" + icon + "'>"+icon+"</div></div>";
});

document.write(dHtml);
  
</script>

这是你的代码的一个稍微重构的版本,在我看来它更清晰:

var fieldTypes = [ 
    {"label":"Text", "icon":"abc-icon", "cls":"text-class"},
    {"label":"Date", "icon":"calendar-icon", "cls":"date-class"},
    {"label":"Radio", "icon":"radio-icon", "cls":"radio-class"},
    {"label":"Checkbox", "icon":"checkbox-icon", "cls":"checkbox-class"},
    {"label":"Selector", "icon":"dropdown-icon", "cls":"selector-class"},
    {"label":"Telephone", "icon":"telephone-icon", "cls":"telephone-class"}
];

$("#pop").empty();

$.each(fieldTypes, function(index, fieldType) {
    var innerDiv = $("<div>", { id: fieldType.icon });
    var outerDiv = $("<div>", { id: "drag", padding: "6px 5px 0 0" });
    $("#pop").append(outerDiv.append(innerDiv));
});