为什么我的split
和join
无效?
$.getJSON(url, function (data) {
// create ".tags" elements and populate them with data
});
$(".tags").text(function (i, val) {
return val.split(",").join(", ");
});
我只是想在每个','(逗号)之后添加空格。
答案 0 :(得分:7)
由于$.getJSON
是异步调用,您需要在$.getJSON
$.getJSON('http://www.json-generator.com/api/json/get/bXClHuexaq?indent=2', function (data) {
//... your code
$(".tags").text(function (i, val) {
return val.split(",").join(", ");
});
});
答案 1 :(得分:3)
正如Satpal提到的,使用$ .getJSON是必需的
$.getJSON(url, function (data) {
// code
$(".tags").text(function (i, val) {
return val.split(",").join(", ");
});
});
但是,作为一般做法,我建议使用正则表达式,主要是因为更长的字符串数组需要更多内存
$(".tags").text(function(i, val) {
return val.replace(/,/g, ", ");
});
答案 2 :(得分:0)
将您的拆分逻辑放在callback中。检查以下jsfiddle
$(document).ready(function (e) {
$.getJSON('http://www.json-generator.com/api/json/get/bXClHuexaq?indent=2', function (data) {
var output = "<table width='100%' cellspacing='0' cellpadding='0'>";
output += "<tr>";
output += "<th width='20%'>" + 'Tags' + "</th>";
output += "<th width='15%'>" + 'Friends' + "</th>";
output += "</tr>";
for (var i in data) {
output += "<tr>";
output += "<td class='tags'>" + data[i].tags + "</td>";
output += "<td>";
for (var j = 0; j < data[i].friends.length; j++) {
output += "<div>" + data[i].friends[j].name + "</div>";
}
output += "</td>";
output += "</tr>";
}
output += "</table>";
document.getElementById("placeholder").innerHTML = output;
$(".tags").text(function (i, val) {
alert(i);
return val.split(",").join("#");
});
});
});