我有一个逗号分隔值的输入字段。我想在逗号之间获取文本,以便我可以为每个元素添加建议。我发现我可以使用第一个孩子的值获取光标位置,如何只获得逗号之间的文本?
编辑:split将获得数组的值,但我希望知道我的光标所在的单词(逗号之间)。 firstChild.nodevalue给了我插入位置。我想在插入位置上的这个词。例如:apple,orange,banana ......如果我的光标位于o和范围之间,它可能会给出橙色,橙色等建议。如果我的光标位于某处,我会以某种方式获得返回“orange”的函数这个词,然后我可以将它与建议数组进行比较。
答案 0 :(得分:2)
这应该可以解决问题......
var pos = 11; // use w/e you need to get the position.
var value = "apple, orange, banana";
var array = value.split(',');
var item = null;
var current_length = 0;
for(var i=0;i<array.length;i++) {
current_length += array[i].length;
if(pos < (current_length + i)) {
item = array[i].replace(/\s/ig, "");
break;
}
}
alert(item) // -> "orange"
答案 1 :(得分:0)
或者不使用分割:
var pos = 11; // use w/e you need to get the position.
var value = "apple, orange, banana";
var item = '';
var len = value.length;
var pointer=pos;
while (true) { var char=value.substr(pointer,1); if (pointer-->=0 && char!=',') item = char + item; else break }
pointer=pos+1;
while (true) { var char=value.substr(pointer,1); if (pointer++<len && char!=',') item += char; else break}
alert(item) // -> "orange"