我对java脚本中的split函数有疑问。在我的例子中,split.length方法只返回“1”,但为什么呢?变量“singleWords”仅包括“”(或换句话说:没有)
以下是代码:
var singleWords = jQuery(elementId).text().split(",");
if (singleWords.length == 0) {
// if case
} else {
// else case
}
jQuery(elementId).text()的值是:“ABC,XYZ,OOP”和singleWords的值是“”
答案 0 :(得分:4)
这是因为如果没有找到分隔符,则split函数返回数组只包含单个元素。
答案 1 :(得分:4)
split
返回由原始字符串组成的字符串数组。由于原始字符串中没有分隔符,因此split会返回仅包含原始字符串的数组。因此,数组的长度为1,因为它只包含一个元素。
答案 2 :(得分:3)
如果您的elementId
变量包含元素的id(顾名思义),则jQuery(elementId)
将返回带有 no 元素的jQuery对象,jQuery(elementId).text()
将是一个空字符串""
。并且一个空字符串.split()
将返回一个包含一个元素(空字符串)的数组,因此singleWords.length
将为1.
要按ID选择元素,您需要jQuery("#" + elementId)
:
var singleWords = jQuery("#" + elementId).text().split(",");
或者,如果您的元素是<input>
元素,则需要使用.val()
而不是.text()
:
var singleWords = jQuery("#" + elementId).val().split(",");
演示:http://jsfiddle.net/s3c3H/1/
此外,代码需要在解析元素后运行,因此需要将其包含在相关元素之后的脚本块中和/或包装在文档就绪处理程序中。
答案 3 :(得分:2)
函数split
总是返回至少一个元素,当它执行此操作时,该元素与您请求拆分的输入字符串相同。