通过Json文档创建超链接
Create Hyperlinks through Json Document
如果这是一个已经得到回答的非常简单的请求,并且我对javascript太不熟悉而无法理解,我提前道歉。
我想创建一个json目录,在HTML页面上显示为表,我希望其中一个单元格是超链接,但我不知道如何做到这一点。
这是我的json脚本:
"beer": [{
"name": "NAME",
"type": "TYPE",
"company": "BREWERY",
"website": "WWW.SITE.COM",
"price": 6.00
}],
这是我的HTML脚本
<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest()}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","catalog.json",false);
xmlhttp.send();
json=JSON.parse(xmlhttp.responseText);
document.write("<table class=table table-bordered>");
var x=json.beer;
for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write(x[i].name);
document.write("</td><td>");
document.write(x[i].type);
document.write("</td><td>");
document.write(x[i].company);
document.write("</td><td>");
document.write(x[i].website);
document.write("</td><td>$");
document.write(x[i].price.toFixed(2));
document.write("</td></tr>");
}
document.write("</table>");
</script>
有人能帮助这个吗
首先,不要使用document.write
。如果在页面加载完成后调用,它将擦除整个页面。最好使用DOM方法来添加新元素。
其次,AJAX(应该是(异步的,为什么要将false
传递给.open()
?(附言:我怀疑有人会用IE5/6访问这个网站,所以你可能会丢失new ActiveXObject
(
// In 2014, this is all that's really needed
var xhr = new XMLHttpRequest;
// The callback to run when the request is done
xhr.onload = function(){
// readyState 4 means the request is done, and 200 is HTTP OK
if(xhr.readyState === 4 && xhr.status === 200){
var json = JSON.parse(xhr.responseText),
// The data we want to loop over
x = json.beer,
// This is how to make a new element
table = document.createElement('table');
// Set the classes
table.className = "table table-bordered";
// Loop over your data
for(var i = 0; i < x.length; i++){
// Create the HTML for this row
var row = '<tr>' +
'<td>'+x[i].name+'</td>' +
'<td>'+x[i].type+'</td>' +
'<td>'+x[i].company+'</td>' +
// For a hyperlink, just use an `<a>` tag
'<td><a href="'+x[i].website+'">'+x[i].website+'</a></td>' +
'<td>'+x[i].price.toFixed(2)+'</td>'+
'</tr>';
// Let's just simply append to the table's innerHTML
table.innerHTML += row;
}
// Add the table to the page
document.body.appendChild(table);
}
};
// This defaults to being *asynchronous*
xhr.open("GET","catalog.json");
// Start the request
xhr.send();
相关文章:
- 如何将超链接添加到通过传单创建的传单多段线.Draw
- 如何在每个动态创建的ImageButton周围包装超链接?Visual Studio
- 从JSON对象创建具有超链接的HTML表
- 如何根据查询字符串值创建动态超链接
- aFrame.io创建超链接和下载链接
- 如何为应用深度链接创建超链接文本
- 有没有一种简单的方法可以在节点上双击 vis.js 创建超链接/javascript-action
- 创建一个超链接(或按钮),用于执行 python 脚本,然后在脚本完成时重定向
- 如何使用web2py和SQLite创建与数据库的超链接
- 为超链接创建侦听器
- 如何创建ctrl按钮超链接
- Indesign JavaScript创建文本&书中的文档内超链接-非常慢
- 如何从弹出窗口创建超链接
- 如何在弹出窗口中的同一页面上用下拉列表中的预选选项创建超链接
- 如何在HTML中创建条件超链接
- 如何在文本中创建超链接
- 如何使用jsPDFjs库在PDF中创建超链接
- 超链接与变量创建一个模态框/弹出
- 如何在javascript中获得所有超链接url和创建onclick
- 为HTML超链接创建查询数据库的函数