我使用typeahead.js从json响应中的颜色项创建li元素
Json:
"results": [
{
"title": "The Collection",
"attribute": "The Collection",
"url": "#/test",
"image": "images/products/londonretro-caine.jpg",
"color": ["brown", "yellow", "grey"]
},
json有一个颜色键,有时是字符串,有时是带有多种颜色的数组
我已经循环了响应并动态创建了一个html
html += '<li></li>'
我添加了一个条件来检查json中的项是否是颜色数组。如果它是一个颜色数组,我已经用数组中的颜色替换了尽可能多的li项
我试过两种方法: 1.一个是我让html等于新的li元素,就像这样:html='
使用方法1,我得到以下结果:
我得到所有的颜色在一个单独的li,但我也得到一个额外的第一个li的颜色像这样:
<li class='product-spot__variants-variant' style='background-color:brown,yellow,grey' title='brown,yellow,grey'>'brown,yellow,grey'</li>
用方法2,我只得到最后一个颜色的最后一个li:
<li class='product-spot__variants-variant' style='background-color:grey' title='grey'>'grey'</li>
我在下面的代码中留下了这两种解决方案。有什么想法吗?谢谢,如果不清楚,请询问。。
我的预打字代码:
suggestion: function (item) {
var glassesColor = item.color;
var html = "<li class='product-spot__variants-variant' style='background-color:"+ glassesColor +"' title='"+ glassesColor +"'>'"+ glassesColor +"'</li>";
_.forEach(item.color, function (k) {
if (typeof item.color === 'object') {
html += "<li class='product-spot__variants-variant' style='background-color:"+ k +"' title='"+ k +"'>'"+ k +"'</li>";
html = [];
html.push("<li class='product-spot__variants-variant' style='background-color:" + k + "' title='" + k + "'>'" + k + "'</li>");
var myhtml = html.join('');
html = myhtml;
}
});
//console.log(html);
var output = '<div class="search-autocomplete search-glasses">\n';
output += '<a href="' + item.url + '">';
output += (item.image ? '<img class="search-autocomplete__image" src="' + item.image + '" alt="' + item.title + '">' : '');
output += '<span class="search-autocomplete__title">' + item.title + '</span>';
output += (item.attribute ? '<span class="search-glasses__attribute">' + item.attribute + '</span>' : '');
output += '<ul class="product-spot__variants">';
output += html;
output += '</ul>';
output += '</a>\n';
output += '</div>\n';
return output;
}
好的,我刚刚为字符串创建了另一个条件,并将html equals代码放在那里。。否则一切都很好
if (typeof item.color === 'string') {
html = "<li class='product-spot__variants-variant' style='background-color:"+ glassesColor +"' title='"+ glassesColor +"'>'"+ glassesColor +"'</li>";
}
问题内容: 我写了这段代码,将图像加载到ImageView小部件中: 现在,我要加载多个图像。为此,我需要动态创建图像视图,但是我不知道如何… 我想在for循环中运行我的代码: 我的主要问题是在循环内动态创建多个ImageView 问题答案: 您可以根据需要修改布局,图像资源和任何图像(也可以是动态的)…
我正在为我的(小型)程序编写单元测试,测试用例在大约30个不同的文件中指定 为了测试它,我只需要一个循环,它遍历所有文件,解析它们,并执行所需的操作。 问题是,在这种情况下,我的所有测试都将被视为一个测试,因为它与符号位于同一个函数中 是否可以以某种方式拆分它,而不必为每个测试文件使用单独的函数? 将所有测试作为一个测试用例的问题是,我看不到哪个测试用例失败了这个过程;如果一个失败了,其余的也失败
问题内容: 我正在使用jQuery CSS函数设置某些元素的样式 这可行,但是页面加载后会动态创建部分元素。这应该是 我被创建的事件困住了。有任何想法吗? 问题答案: 创建的元素没有事件(无论如何都无法通用)。你可以 将规则添加到样式表,以便将其自动应用于新创建的元素 创建元素时,链接 css() 方法: 动态创建一个新的样式表:
本文向大家介绍JS动态创建DOM元素的方法,包括了JS动态创建DOM元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS动态创建DOM元素的方法。分享给大家供大家参考。具体如下: 近日,因工作需要,需要通过点击某个元素后, 动态创建一个DOM元素并显示,因此写了一些相关的JS函数,在此记录,以作备忘: 使用示例: 希望本文所述对大家的javascript程序设计有所帮助。
本文向大家介绍javascript元素动态创建实现方法,包括了javascript元素动态创建实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript元素动态创建实现方法。分享给大家供大家参考。具体分析如下: document.write只能在页面加载过程中才能动态创建 可以调用document的createElement方法来创建具有指定标签的DOM对象,然后通过调用
问题内容: 我正在尝试使用jQuery的循环来遍历此JSON并将其添加到named中。JSON如下: 我通过使用以下代码获取此JSON: 有什么办法吗? 问题答案: 尝试(未试用): 我想了三个独立的循环,因为您可能希望对每个数据集进行不同的处理(justIn,recent,old)。如果没有,您可以执行以下操作: