gpt4 book ai didi

javascript - JS 函数未运行整个脚本

转载 作者:行者123 更新时间:2023-12-03 00:57:43 25 4
gpt4 key购买 nike

我的 JS 的这一部分

  var records=response.split('|');
for (i=1; i<records.length; i++) {
var record=records[i].split('*');
var region=record[0];
var regionid=record[1];
var x=document.createElement('option');
x.text=region;
list.options.add(x);
}

当它进入 for 循环时,它永远不会运行 { } 之间的内容

记录是

0: "<option value='Bobs Dock'>Bobs Dock</option><option value='Johns Dock'>Johns Dock</option><option value='Mikes Dock'>Mikes Dock</option>"
length: 1

响应是

"<option value='Bobs Dock'>Bobs Dock</option><option value='Johns Dock'>Johns Dock</option><option value='Mikes Dock'>Mikes Dock</option>"

那么为什么它不运行 { } 之间的项目?

编辑********

当更改为 0 并运行时,它现在会使下拉框选项显示

<option>
"<option value='Bobs Dock'>Bobs Dock</option><option value='Johns Dock'>Johns Dock</option><option value='Mikes Dock'>Mikes Dock</option>"
</option>

它应该做的是将每个选项分解为下拉框自己的选项。

最佳答案

您的 split 函数返回一个大小为 1 的数组,因为它没有找到管道“|”在你的字符串中。同时,Javascript 数组索引是从零开始的,因此第一个也是唯一的项目是 record[0]。由于“i=1;”,您的循环仅在第二个或更高的记录上开始循环初始化程序,它永远不会运行,因为“i

我认为这里有两个错误:

1) 将 for 循环初始化为零(即“i=0;”)

2)您可能需要按照不同的模式进行拆分,因为字符串中没有管道。也许可以尝试:

var valueRegEx = /value='([^']+)'/;  // find the contents of the value attribute
var textRegEx = />([^<]*)/; // find the text of the option

var records=response.split('</option><option ');
for (i=0; i<records.length; i++) {
var option = record[i];
var value = valueRegEx.exec(option)[1]
var text = textRegEx.exec(option)[1]

// ...
// Not sure what you're trying to do at this part,
// but the above hopefully answers your question
// ...

var x=document.createElement('option');
x.text=region;
list.options.add(x);
}

从响应字符串中检索所有值的另一种方法是让正则表达式解析整个内容:

var regex = /(?<=value=['"])[^'"]*/g;

var arrayOfValues = response.match(regex);
// arrayOfValues = ['Bobs Dock', 'Johns Dock', 'Mikes Dock']

关于javascript - JS 函数未运行整个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52749676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com