Javascript 选择span标记中的文本
在考虑浏览器兼容性时,在span标记中选择文本的方法是什么?例如,我有:Javascript 选择span标记中的文本,javascript,jquery,Javascript,Jquery,在考虑浏览器兼容性时,在span标记中选择文本的方法是什么?例如,我有: jQuery().html('<p>Hello world <span>lorem ipsum</span> my good friend!'); HTML代码 <input type="text" name="firstName" value="Enter your name..." /> //SELECT TEXT RANGE $.fn.selectRange = f
jQuery().html('<p>Hello world <span>lorem ipsum</span> my good friend!');
HTML代码
<input type="text" name="firstName" value="Enter your name..." />
//SELECT TEXT RANGE
$.fn.selectRange = function(start, end) {
return this.each(function() {
if (this.setSelectionRange) {
this.focus();
this.setSelectionRange(start, end);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', start);
range.select();
}
});
};
$('input[name=firstName]').focus().selectRange(5,10);
//选择文本范围
$.fn.selectRange=函数(开始、结束){
返回此值。每个(函数(){
如果(此.setSelectionRange){
这是focus();
此.setSelectionRange(开始、结束);
}else if(this.createTextRange){
var range=this.createTextRange();
范围。塌陷(真);
range.moveEnd('character',end);
range.moveStart('character',start);
range.select();
}
});
};
$('input[name=firstName]').focus().selectRange(5,10)代码>
你是说像这样
var i=0;
函数SelectText(元素){
var doc=文档
,text=doc.querySelectorAll(元素)
,范围,选择
;
if(doc.body.createTextRange){
range=document.body.createTextRange();
range.moveToElementText(文本[i]);
range.select();
}else if(window.getSelection){
selection=window.getSelection();
range=document.createRange();
范围。选择节点内容(文本[i]);
selection.removeAllRanges();
选择。添加范围(范围);
}
i++;
如果(i==text.length)i=0;
}
document.onclick=函数(e){
如果(e.target.className=='单击'){
选择文本('span');
}
};代码>
你好,我的好朋友!
你好,我的好朋友!
单击我
问得好。我希望看到一种也适用于移动浏览器的方法。可能重复css中的cursor:pointer
?不。只希望选择lorem ipsum,就像用户用光标手动选择一样。@Henrikpeterson等等,那么您想用特定的背景色突出显示文本吗?就像在计算机上复制文本一样?@Henrik Petterson这可以帮助您选择光标,因为光标选择仅在
或
元素中有效,而OP指的是
。这正是我的意思,但是,我想使用.html()输出文本,并在pageload上选择文本包装,不用点击。感谢您的更新,尽管.html()是通过ajax添加的(在pageload之后)。对不起,我没有正确地澄清这一点。能否通过ajax将代码调整为output.html(),并选择span标记中的文本?当我有资格努力时,我将以50分奖励这个。谢谢这一整天都让人头疼。关键是在添加内容后立即调用函数,如果有问题,请打开一个新问题…lorem ipsum我的老朋友。我又来和你说话了。因为在我睡觉的时候,一个幻影悄悄地爬进了你好的世界。。。
//SELECT TEXT RANGE
$.fn.selectRange = function(start, end) {
return this.each(function() {
if (this.setSelectionRange) {
this.focus();
this.setSelectionRange(start, end);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', start);
range.select();
}
});
};
$('input[name=firstName]').focus().selectRange(5,10);