Javascript JS-拆分字符串并在结果中循环

Javascript JS-拆分字符串并在结果中循环,javascript,Javascript,在JS中,我很难解决如何拆分来自AJAX调用的字符串 这就是我到目前为止所做的: xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { feedUpdateResponse = xmlhttp.responseText; /////...split script...///// } } xmlhttp.open("GET","https://myD

在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();
在上面我的脚本中有////拆分脚本////的地方,我需要添加一个小函数来拆分AJAX调用返回的字符串

字符串仅包含div的名称,如下所示:

feedUpdateResponse = "div1/div2/div3/div4"
我想首先将字符串按斜杠(/)拆分,并在不同的值之间运行循环,然后对页面上的这些元素执行一些操作

为了说明我需要实现什么,我给出了这个示例,它是ASP和JS的混合-这是我能够描述它的唯一方式(并表明我已经尝试过):)

在我的页面上,我有一个ASP脚本,它生成jquery旋转木马,所有这些都包含在单独的div中。div被命名为DIV1、DIV2等。例如,DIV1内部有一个名为
updateAvailable\u DIV1
的文本元素,它会提醒用户“此提要有新照片可用,请单击刷新按钮”

有人能给我解释一下我如何改变我上面的例子来使用JS吗?只需将字符串拆分为一个数组,并通过拆分的值进行循环…

var feedUpdateResponse=“div1/div2/div3/div4”;
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";
}
var feedUpdateSplit=feedUpdateResponse.split(“/”); 对于(变量x=0;x
通过
string.split(“/”)
获取数组。使用所选方法迭代数组。我更喜欢:

有关在旧浏览器中使用
.forEach()
的信息,请参阅。

您可以使用拆分指定字符上的字符串,并将结果作为数组返回。因此,这只是在阵列中循环的问题:

// 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";
}
//给定现有变量
//feedUpdateResponse=“div1/div2/div3/div4”如
//在问题中添加以下代码:
var a=feedUpdateResponse.split(“/”),
我
对于(i=0;i
尝试以下代码:

var a = feedUpdateResponse.split("/");

for (i in a) {
    document.getElementById("updateAvailable_" + a[i]).style.visibility
                                                                 = "visible";
}
作为替代方案:

for(element of feedUpdateResponse.split("/")){
    do_your_thing();
}
使用
for..in
将得到数组上的索引(键),而
for..on
将得到数组中的元素(值)

您还可以执行以下操作:

for ([index, element] of Object.entries(feedUpdateResponse.split("/"))) {
    do_your_thing();
}
如果您需要索引


缺点是它与IE不兼容,但对于个人项目或快速自动化脚本,它通常对我很好。

我很感激你的建议,但我真的不理解,抱歉,不要使用
迭代数组。。在
loops.Jeeez中,IE再次引发问题!只有IE9支持FOREACH(),所以我不确定是否可以使用它。令人烦恼的是,我的17%的用户仍在使用IE8…,7%的用户仍在使用IE7。谢谢Gilly3@martin-见我答案的最后一句。该链接为较旧的浏览器提供了一个实现。引用gilly3在John回答的预编辑版本中的评论:“不要使用for..in循环迭代数组”。请使用
.forEach()
或传统的for循环。
for(element of feedUpdateResponse.split("/")){
    do_your_thing();
}
for ([index, element] of Object.entries(feedUpdateResponse.split("/"))) {
    do_your_thing();
}