Ich habe dieses Skript verwenden, um einen Text, indem Sie auf ein einziges MalJavascript createRange. Wie wählt man verschiedene Bereiche mit nur einem Skript aus?
<script type="text/javascript">
$('#maincode').click(function(){
var span = $('.selectcode')[0],
sel, range;
if(window.getSelection){
sel = window.getSelection();
range = document.createRange();
range.selectNode(span);
sel.removeAllRanges();
sel.addRange(range);
} else {
range = document.body.createTextRange();
range.moveToElementText(span);
range.select()
}
});
</script>
hervorgehoben zu erhalten, die mit einem Codeblock angewandt wird:
<code id="maincode">
<span class="selectcode">
TEXT that gets selected by clicking
</span>
</code>
Wie kann ich dieses Skript verwenden, um mehrere Codeblocks markieren ohne das Skript immer wieder mit neuen IDs zu kopieren? Ein weiterer Codeblock wie folgt sein könnte:
<code id="secondcode">
<span class="selectcode">
Another block
</span>
</code>
Ich habe versucht, es auf diese Weise ein nicht getan:
$('#maincode, #secondcode').click(function(){
var span = $('.selectcode')[0],
sel, range;
Danke Jungs!
EDIT:
<code id="maincode" data-target="#text1"><span id="text1">test</span></code>
<code id="secondcode" data-target="#text2"><span id="text2">test</span></code>
<script type="text/javascript">
$('#maincode, #secondcode').click(function(){
var targetBlockId = $(this).attr("data-target");
var targetBlock = $(targetBlockId);
sel, range;
if(window.getSelection){
sel = window.getSelection();
range = document.createRange();
range.selectNode(span);
sel.removeAllRanges();
sel.addRange(range);
} else {
range = document.body.createTextRange();
range.moveToElementText(span);
range.select()
}
});
</script>
Lassen Sie uns klären, Ihre Auswahl funktioniert nur für einen Block und funktioniert nicht für die Sekunde? versuchen, umzubenennen '' var targetBlock = $ (targetBlockId) '' in '' var span = $ (targetBlockId) '' – reconnect