JavaScriptでテキストボックスの選択文字列を取得する方法


自分のJavaScriptの知識のなさを実感した。
まぁ、それはいいとして
JavaScriptでテキストボックスの選択文字列を取得する方法
jQueryとピュアなJavaScriptで試した。
そんなにやることは変わらない。

ピュアなJavaScript

        function isSelectedText(obj){
            var selStart = obj[0].selectionStart;
            var selEnd = obj[0].selectionEnd;
            console.log(selStart);
            console.log(selEnd);
            if(selStart != -1 && selEnd != -1 && selStart != selEnd){
                return true;
            }else{
                return false;
            }
        }
        function getSelectedText(obj){
            var selStart = obj[0].selectionStart;
            var selEnd = obj[0].selectionEnd;
            var val = obj[0].value;
            return val.substring(selStart, selEnd);
        }

コチラはjQuery。
再利用したいのでextendで実装。

        $.fn.extend({
            /**
             * 選択中のテキストを取得します
             */
            getSelectedText:function(){
                var selStart = $(this)[0].selectionStart;
                var selEnd = $(this)[0].selectionEnd;
                var val = $(this).val();
                return val.substring(selStart, selEnd);
            }
            /**
             * 選択中かどうかを確認する
             */
            ,isSelectedText:function(){
                var selStart = $(this)[0].selectionStart;
                var selEnd = $(this)[0].selectionEnd;
                console.log(selStart);
                console.log(selEnd);
                if(selStart != -1 && selEnd != -1 && selStart != selEnd){
                    return true;
                }else{
                    return false;
                }
            }
        });

ピュアなJavaScriptもjQuery使った時も、オブジェクトの要素0にアクセスるのがポイントなんですねー。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)