为什么string.length返回undefined?

时间:2011-02-12 16:44:23

标签: javascript

在弹出窗口中,selText的值为“great”,但长度始终为undefined。与字符串编码有关的东西?

var selText = document.getSelection(); //suppose "great" is selected
alert( "selected ->" + selText + " len is " + selText.length);

3 个答案:

答案 0 :(得分:30)

因为您正在获取DOM选择对象而不是String。要获取文字,请致电toString()

var selText = document.getSelection().toString();

字符串成功显示在警报中的原因是连接导致隐式toString()发生。

答案 1 :(得分:2)

MDN documentation州。

  

在上面的例子中,selObj是   通过时自动“转换”   到window.alert。但是,使用一个   JavaScript String属性或方法   例如长度或子字符,你必须   手动调用toString方法    - https://developer.mozilla.org/en/window.getSelection

建议您拨打document.getSelection().ToString().length;

答案 2 :(得分:0)

不推荐使用的方法document.getSelection()尝试使用window.getSelection()。

var selText = window.getSelection().toString();
        if(selText)
        {
            alert( "selected ->" + selText + " len is " + (selText.length - 1));
        }