当字符串中只有一个元素时,如何在jQuery中将字符串分割成数组
How to split a string into an array in jQuery when there is only one element in the string?
我有这个代码,它接受一个字符串并将其分割成一个数组:
nodes = $("#" + model_id + "-" + node_class + "--" + "title").data("nodes").split(",")
当字符串中只有一个元素(没有逗号)时,变量"nodes"不会成为数组,而是一个常规变量。所以当我尝试遍历"nodes"中的每个元素时,如果原始字符串只包含一个元素,什么也不会发生。如果包含多个元素,则一切正常。
$.each(nodes, function (id, node_id) {
if ($("#" + model_id + "-" + node_class + "-" + node_id + "-" + "chkbx").is(":checked")) {
counter ++
}
})
我试图声明"节点"作为一个数组,但是当我分配分割字符串时,它都是一样的。因为我使用"拆分"来赋值,所以我认为我不能使用"push"来向数组添加值。
我试着把方括号放在每一个地方,我想,例如:
[nodes] = $("#" + model_id + "-" + node_class + "--" + "title").data("nodes").split(",")
…但那没有用。
是否有任何解决方案,除了检查"节点"是否为数组,然后编写不同的代码来处理这两个选项?
当字符串中只有一个元素(没有逗号)时,变量"nodes"不成为数组,而是一个常规变量。
A)引用数组的变量是常规变量。B)这不是split
的工作方式。split
always返回一个数组。如果字符串中不存在分隔符,则结果数组的长度为一个元素。(Live proof)所以只要data
返回一个字符串,nodes
将被设置为一个数组。但是请注意,data
并不总是返回字符串,因此data("nodes").split(",")
可能会失败,错误是split
不是函数,因为data
可以返回null
或对象以及string
。如果你知道它将永远是一个字符串,因为你的应用程序逻辑,这很好,但如果是这样,nodes
将永远是一个数组,这就是为什么我提到它。
回复下面的评论:迭代在单元素数组上工作得很好:http://jsbin.com/ehucop/2
我怀疑你需要查看浏览器中的JavaScript控制台,我打赌你会发现一个错误正在发生,它阻止了你的迭代代码运行。
- 字符串Jquery结构中的变量
- 在字符串 jquery 中添加空格
- 如何在字符串 jQuery 上调用函数
- 将 .val() 转换为字符串 jQuery
- 如何放置 PHP 字符串 jQuery 验证错误消息
- 查找字符串 jQuery/Javascript 的部分
- 从字符串 jQuery 中删除字符串
- 比较明显相等的字符串 JQuery
- 在字符串中使用 PHP 作为字符串.(JQuery)
- 比较两个字符串(jquery .text() 和文字字符串)
- 替换<a>如果它以字符串JQuery结尾
- 字符串jQuery剩余的空白数量
- 重新注册字符串jquery.Ui可拖动
- 字符串替换为另一个字符串jquery/javascript
- 如果子值与某个字符串JQuery匹配,则隐藏父元素
- 单击时从输入中删除字符串?jQuery
- 如何获取特定子字符串jquery之后的字符串
- 不能识别父-字符串JQuery中的子字符串
- 翻译KeyDown键码字符串(jQuery)
- 即使我没有引号来转义,它仍然说我有一个未闭字符串(Jquery)