在JS中,我无法解决如何拆分来自AJAX调用的字符串。
这是我到目前为止所做的:
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
feedUpdateResponse = xmlhttp.responseText;
/////...split script.../////
}
}
xmlhttp.open("GET","https://myDomain.com/myScript.aspx",true);
xmlhttp.send();
在上面的脚本中你有/////...split脚本... /////,我需要添加一个小函数来分割从我的AJAX调用返回的字符串。
字符串只包含DIV的名称,如下所示:
feedUpdateResponse = "div1/div2/div3/div4"
我想首先用斜杠(/)拆分字符串,然后运行不同值的循环,然后对页面上的元素执行操作。
为了了解我需要实现的目标,我给出了这个ASP和ASP混合的例子。 JS - 这是我可能描述它的唯一方式(并表明我已经尝试过):))
MyArray = Split(feedUpdateResponse,"/")
For Each X In MyArray
documentGetElementById('updateAvailable_'+x).style.visibility="visible";
Next
在我的页面上,我有一个ASP脚本,可以生成jquery轮播,所有这些都由不同的DIV包含。 DIV被命名为DIV1,DIV2等。例如,在DIV1中,是一个名为updateAvailable_div1
的文本元素,它会提醒用户“此Feed有新照片,请点击刷新按钮”。
有人可以向我解释我如何改变上面的例子来使用JS吗?只需要将字符串拆分成一个数组并循环遍历拆分值......
答案 0 :(得分:30)
您可以使用.split()
拆分指定字符上的字符串,并将结果作为数组返回。那么这只是循环数组的问题:
// given your existing variable
// feedUpdateResponse = "div1/div2/div3/div4" as set in the
// code in the question, add this:
var a = feedUpdateResponse.split("/"),
i;
for (i = 0; i < a.length; i++) {
document.getElementById("updateAvailable_" + a[i]).style.visibility
= "visible";
}
答案 1 :(得分:27)
通过string.split("/")
获取您的数组。使用您选择的方法迭代您的数组。我更喜欢Array.forEach()
:
feedUpdateResponse.split("/").forEach(function (item) {
document.getElementById(item).style.visibility = "visible";
});
请参阅compatibility notes在旧版浏览器中使用.forEach()
。
答案 2 :(得分:0)
var feedUpdateResponse = "div1/div2/div3/div4";
var feedUpdateSplit = feedUpdateResponse.split("/");
for (var x = 0; x < feedUpdateSplit.length; x++) {
document.getElementById("updateAvailable_" + feedUpdateSplit[x]).style.visibility = "visible";
}
答案 3 :(得分:0)
试试这段代码:
var a = feedUpdateResponse.split("/");
for (i in a) {
document.getElementById("updateAvailable_" + a[i]).style.visibility
= "visible";
}
答案 4 :(得分:0)
作为替代:
for(element of feedUpdateResponse.split("/")){
do_your_thing();
}
使用 for..in
最终会给你数组的索引(键),而 for..on
会给你数组的元素(值)。
你也可以这样做:
for ([index, element] of Object.entries(feedUpdateResponse.split("/"))) {
do_your_thing();
}
如果您需要索引。
缺点是它与 IE 不兼容,但对于个人项目或快速自动化脚本,它通常对我来说很好。