javascript-双击选择整个字符串
我正在将数据从django后端传递到我的浏览器,该后端可能包含空格javascript-双击选择整个字符串,javascript,html,Javascript,Html,我正在将数据从django后端传递到我的浏览器,该后端可能包含空格{{string},例如这是句子或H3ll0W0!rd。双击时,我希望能够选择整个句子或字符串,以便可以复制 HTML的例子是 <div class="table-responsive"> <table class="table"> <thead> <tr> <th>Book Title<
{{string}
,例如这是句子或H3ll0W0!rd
。双击时,我希望能够选择整个句子或字符串,以便可以复制
HTML的例子是
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Book Title</th>
<th>Book Code</th>
</tr>
</thead>
<tbody>
{% for b in books %}
<tr>
<td>{{ b.title }}</td>
<td>{{ b.code}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
书名
图书编码
{书籍%%中的b为%1}
{{b.title}}
{{b.code}}
{%endfor%}
您可以使用如下双击侦听器:
HTML:
您可以使用双击侦听器,如下所示:
HTML:
我举了个例子。要定义可选择的文本,只需将其放入p
标记中即可。看一看:
jQuery:
$(document).ready(function(){
$('p').dblclick(function(e){
$(this).selectText();
// If you want, here you can also copy the text.
e.preventDefault();
});
});
jQuery.fn.selectText = function(){
this.find('input').each(function() {
if($(this).prev().length == 0 || !$(this).prev().hasClass('p_copy')) {
$('<p class="p_copy" style="position: absolute; z-index: -1;"></p>').insertBefore($(this));
}
$(this).prev().html($(this).val());
});
var doc = document;
var element = this[0];
console.log(this, element);
if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};
$(文档).ready(函数(){
$('p').dblclick(函数(e){
$(this.selectText();
//如果您愿意,也可以在这里复制文本。
e、 预防默认值();
});
});
jQuery.fn.selectText=函数(){
this.find('input').each(function(){
如果($(this.prev().length==0 | |!$(this.prev().hasClass('p|u copy')){
$('”).insertBefore($(this));
}
$(this.prev().html($(this.val());
});
var doc=单据;
var元素=此[0];
console.log(这个,元素);
if(doc.body.createTextRange){
var range=document.body.createTextRange();
range.moveToElementText(元素);
range.select();
}else if(window.getSelection){
var selection=window.getSelection();
var range=document.createRange();
范围。选择节点内容(元素);
selection.removeAllRanges();
选择。添加范围(范围);
}
};
HTML:
这是一个文本示例另一个
一些文本x文本
Js小提琴:
这里有一个“如何选择div内容文本”的示例
这是你的问题吗?我举了个例子。要定义可选择的文本,只需将其放入p
标记中即可。看一看:
jQuery:
$(document).ready(function(){
$('p').dblclick(function(e){
$(this).selectText();
// If you want, here you can also copy the text.
e.preventDefault();
});
});
jQuery.fn.selectText = function(){
this.find('input').each(function() {
if($(this).prev().length == 0 || !$(this).prev().hasClass('p_copy')) {
$('<p class="p_copy" style="position: absolute; z-index: -1;"></p>').insertBefore($(this));
}
$(this).prev().html($(this).val());
});
var doc = document;
var element = this[0];
console.log(this, element);
if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};
$(文档).ready(函数(){
$('p').dblclick(函数(e){
$(this.selectText();
//如果您愿意,也可以在这里复制文本。
e、 预防默认值();
});
});
jQuery.fn.selectText=函数(){
this.find('input').each(function(){
如果($(this.prev().length==0 | |!$(this.prev().hasClass('p|u copy')){
$('”).insertBefore($(this));
}
$(this.prev().html($(this.val());
});
var doc=单据;
var元素=此[0];
console.log(这个,元素);
if(doc.body.createTextRange){
var range=document.body.createTextRange();
range.moveToElementText(元素);
range.select();
}else if(window.getSelection){
var selection=window.getSelection();
var range=document.createRange();
范围。选择节点内容(元素);
selection.removeAllRanges();
选择。添加范围(范围);
}
};
HTML:
这是一个文本示例另一个
一些文本x文本
Js小提琴:
这里有一个“如何选择div内容文本”的示例
这是你的问题吗?你怎么知道什么时候开始或结束?您提供了两个非常不同的示例。你在使用框架吗?我们可以假设页面中的文本被包装在它自己的元素中吗?你如何知道何时开始或结束它?您提供了两个非常不同的示例。你在使用框架吗?我们可以假设页面中的文本被包装在它自己的元素中吗?再读一遍,问题是关于文本突出显示。哈哈,这非常准确。如您所见,它只适用于只有文本的元素。我还会调用event.preventDefault
,以确保浏览器不会在之后自动取消选择它,但如果没有它,它似乎可以正常工作。非常正确,浏览器似乎可以处理它,但最好是安全的,而不是抱歉。我已经编辑了我的答案,谢谢:)再读一遍,这个问题是关于文本突出显示的。哈哈,差不多就是这样。如您所见,它只适用于只有文本的元素。我还会调用event.preventDefault
,以确保浏览器不会在之后自动取消选择它,但如果没有它,它似乎可以正常工作。非常正确,浏览器似乎可以处理它,但最好是安全的,而不是抱歉。我已经编辑了我的答案,谢谢:)
$(document).ready(function(){
$('p').dblclick(function(e){
$(this).selectText();
// If you want, here you can also copy the text.
e.preventDefault();
});
});
jQuery.fn.selectText = function(){
this.find('input').each(function() {
if($(this).prev().length == 0 || !$(this).prev().hasClass('p_copy')) {
$('<p class="p_copy" style="position: absolute; z-index: -1;"></p>').insertBefore($(this));
}
$(this).prev().html($(this).val());
});
var doc = document;
var element = this[0];
console.log(this, element);
if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};
This is a text <p>example another one</p> bla bla bla bla <br>
Some <p>text text text</p> x x x text