如何将json文件转换为HTML而不首先将它们添加到元素中
How do I convert json file into HTML without adding them into an element first?
在jQuery的网站上有一个文档说,
$.getJSON( "ajax/test.json", function( data ) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
});
对于那些使用过这种方法的人来说,它将所有json属性添加到名为"itemams"的变量中,然后通过将字符串添加到一个名为"my-new-list"的新无序列表中,将"items"转换为html。
现在,假设我不想用一个名为"my-new-list"的类添加一个新的无序列表,相反,我想将新变量转换为字符串并添加到一个现有的HTML元素中,比如用一个名为"curtain"的类,我该怎么做呢?
这是我的尝试:
var items = [];
var first = '<div class="panel"><div class="panel-gallery"><img src="',
second = '" Alt=""></div></div>';
$.each( data, function( url ) {
items.push( first + url + second );
html: items.join( "" ).appendTo( ".curtain" );
});
显然这会给我一个错误:
html: items.join( "" ).appendTo( ".curtain" );
它给你一个错误,因为它不是一个有效的语法,因为你把它放在一个函数中,而不是一个散列。如果物品。Join返回html,只需删除"html:"并执行以下操作:
$(items.join( "" )).appendTo( ".curtain" );
用最简单的方式回答你的问题,这是不可能的。
为什么?
文档如下:http://www.w3schools.com/jquery/html_html.asp
简而言之,jQuery中的.html()方法必须有一个"选择器"。"这意味着,你必须有一个选择器来允许对象被转换成。
你有三种方法来实现你的目标。
如果你不想扩展你的变量"items",你可以简单地把它从代码中拿出来,然后使用:$('.yourClass').append(XXX);
看起来你失败了。这是因为将字符串挂载到DOM树会在javascript引擎的第一个进程中循环,你可以使用load方法,但你仍然可能失败。所以你必须使用方法2或方法3。
2)利用'。为空,然后:
$('.yourClass').html(XXX);
现在这很方便,但是,您可能没有空的'。yourClass"所以…
3)创建一个新类,命名为"。newclass":$( "<div/>", {
"class": "newClass",
html: items.join( "" )
}).appendTo( "body" );
现在取'的所有子元素。并将它们附加到'.yourClass':
$(".newClass").children().appendTo(".yourClass");
最后,删除'. newclass '。
$(".newClass").remove();
困难?是的。这是必须的。对不起朋友。
相关文章:
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 如何使用jquery遍历具有动态添加元素的数组
- jQuery appendTo 替换元素而不是添加元素,如果正在添加的元素预先存在于列表中
- 如何使用jquery添加元素
- 动态添加元素上的 HammerJS
- CSS没有'使用javascript向页面动态添加元素时无法工作
- 使用Javascript在DOM元素中添加元素
- 在添加元素时激发JS事件
- 什么's是在IE8+中添加元素的最有效方法
- d3.js在添加元素时协调
- 使用路由器链接动态添加元素
- 动态添加元素
- 在页面内容完全加载后,使用jQuery在DOM中添加元素
- j查询绑定单击不添加元素
- 在循环 jQuery 上添加元素
- 从一个页面调用 javascript 函数以在第二个页面上添加元素
- 页面加载后向<正文>添加元素时出现问题
- 动态添加元素时刷新 HTML
- 动态添加元素时不触发 JQuery 事件
- 如何使用 JavaScript 获取动态添加元素的宽度