gpt4 book ai didi

Jquery 替换不适用于长文本

转载 作者:行者123 更新时间:2023-12-01 07:57:45 24 4
gpt4 key购买 nike

Jquery .replace() 不适用于长文本。如果您突出显示几个单词,则一切正常,但如果选择所有文本,则不起作用。

//Grab selected text
function getSelectedText(){
if(window.getSelection){
return window.getSelection().toString();
}
else if(document.getSelection){
return document.getSelection();
}
else if(document.selection){
return document.selection.createRange().text;
}
}

$("p").on("mouseup",function() {
selection = getSelectedText();
});

$(".add-h1").on("click",function(e) {
e.preventDefault();
alert(selection);
if(selection.length >= 1) {
var repl = '</p><h1>' + selection + '</h1><p>';
$('body').html($('body').html().replace(selection, repl));
selection = "";
}
});

Fiddle

最佳答案

问题不在于长度,而在于您选择返回的文本与 html 返回的源文本之间的间距不一致。例如,在您的原始 HTML 中,您有以下内容:

fallback to users  JavaScript disabled

请注意,JavaScript 之前有 2 个空格。但是,在您选择返回的文本中,这些空格将标准化为单个空格。

对于任何其他空格、换行符等,当然还有任何嵌入的 html 标签,您可能会遇到类似的问题。文本选择返回所看到的文本,而不是源标记中的文本。

关于Jquery 替换不适用于长文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22769406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com