使用Javascript,很容易以編程方式選擇textarea內的文本或輸入文本元素。怎麼樣對於我可以突出顯示任何使用Javascript而不是textarea和輸入文本元素的文本嗎?
<span>The quick brown fox jumps over the lazy dog</span>
是否有可能使用JavaScript來選擇單詞「快速棕色狐狸」?或者選擇整個句子?
使用Javascript,很容易以編程方式選擇textarea內的文本或輸入文本元素。怎麼樣對於我可以突出顯示任何使用Javascript而不是textarea和輸入文本元素的文本嗎?
<span>The quick brown fox jumps over the lazy dog</span>
是否有可能使用JavaScript來選擇單詞「快速棕色狐狸」?或者選擇整個句子?
http://www.sitepoint.com/forums/showthread.php?t=459934
<script type="text/javascript">
function fnSelect(objId) {
fnDeSelect();
if (document.selection) {
var range = document.body.createTextRange();
range.moveToElementText(document.getElementById(objId));
range.select();
}
else if (window.getSelection) {
var range = document.createRange();
range.selectNode(document.getElementById(objId));
window.getSelection().addRange(range);
}
}
function fnDeSelect() {
if (document.selection) document.selection.empty();
else if (window.getSelection)
window.getSelection().removeAllRanges();
}
</script>
<body>
<div id="test1">
<p>jhsdgfhlsdlfkjsdklgjs</p>
<p>jhsdgfhlsdlfkjsdklgjs</p>
<p>jhsdgfhlsdlfkjsdklgjs</p>
</div>
<div id="test2">
<p>jhsdgfhlsdlfkjsdklgjs</p>
<p>jhsdgfhlsdlfkjsdklgjs</p>
<p>jhsdgfhlsdlfkjsdklgjs</p>
</div>
<a href="javascript:fnSelect('test1');">Select 1</a>
<a href="javascript:fnSelect('test2');">Select 2</a>
<a href="javascript:fnDeSelect();">DeSelect</a>
</body>
在CSS,你可以創建一個.highlight類
.highlight{
background-color:yellow;
}
在JavaScript中,你可以在.highlight類添加到您想強調
<getSpanElement>.className='highlight';
那麼該文本被高亮顯示的元素,雖然它沒有被選中。
突出顯示或選擇?我想你實際上想選擇不突出顯示。
突出顯示...是!設置span
元素的正確CSS屬性,例如前景色和背景色。
編輯:這就是所謂的選擇。對不起,我不知道有什麼辦法可以做到。
堂妹的禮貌時,我說的「選擇」,一些用戶認爲它的意思是「得到的價值。」 – 2009-05-28 20:52:58
您需要一些方法來操縱span
標記。比如id
,但是在javascript中我會編輯一些style
屬性。你可以擁有一個你想要突出顯示的內容,如下所示。
.HL {
background: #ffff99;
color: #000000;
}
如果你這樣做,那麼你將需要獲得對特定標籤的引用。
DocumentgetElementsByTagName("title")
否則Document.getElementByID("ID")
適合獨特的ID。 然後使用setAttribute(name, value)
將類更改爲給定的類。
這只是一個簡單的例子,但有很多方法可以做到這一點。
<span id="abc" class=""> Sample </span>
var temp = Document.getelementByID("abc");
temp.setAttribute('class', 'HL');
不得不嘗試一下。完美工作。 +1 – Stefan 2009-05-28 21:03:17