Blog

It's a Wonderful Life

如何通过代码选中元素的文本

2017-09-06 22:42 Posted in Learn with HTML , jQuery

有时,可能有需要做“点击一个元素就选中元素内文本”的效果,可以通过以下代码实现:

function selectText( containerid ) {

	var node = document.getElementById( containerid );

	if ( document.selection ) {
	    var range = document.body.createTextRange();
	    range.moveToElementText( node  );
	    range.select();
	} else if ( window.getSelection ) {
	    var range = document.createRange();
	    range.selectNodeContents( node );
	    window.getSelection().removeAllRanges();
	    window.getSelection().addRange( range );
	}

}

或者使用以下更简单的方法:

window.getSelection().selectAllChildren( document.getElementById( id ) );

另外,如果需要对选中的文本效果进行自定义,可以这样做:

* {
    user-select: none;
}

pseudoElement::selection {
    /* self defined css goes in here */
}

pseudoElement::-mos-selection {
    /* otherwise firefox wouldn't apply thoes effect */
}