寻找换行

寻找换行,第1张

寻找换行

这就是我最终使用的(随意批评和复制以作恶用)。

首先,当编辑来自用户时,将其拆分为

$(editableElement).lineText(userInput)

jQuery.fn.lineText = function (userInput) {   var a = userInput.replace(/n/g, " n<br/> ").split(" ");   $.each(a, function(i, val) {       if(!val.match(/n/) && val!="") a[i] = '<span >' + val + '</span>';   });   $(this).html(a.join(" "));};

替换换行的原因是,编辑文本框中填充了

$(editableElement).text()
,它会忽略
<br/>
标签,但出于排版目的,它们仍将更改显示屏中下一行的高度。这不是最初目标的一部分,只是悬而未决的结果。

当我需要提取带格式的文本时,请致电

$(editableElement).getLines()
,其中

jQuery.fn.getLines = function (){   var count = $(this).children(".word-measure").length;   var lineAcc = [$(this).children(".word-measure:eq(0)").text()];   var textAcc = [];   for(var i=1; i<count; i++){      var prevY = $(this).children(".word-measure:eq("+(i-1)+")").offset().top;      if($(this).children(".word-measure:eq("+i+")").offset().top==prevY){         lineAcc.push($(this).children(".word-measure:eq("+i+")").text());   } else {     textAcc.push({text: lineAcc.join(" "), top: prevY});     lineAcc = [$(this).children(".word-measure:eq("+i+")").text()];   }   }   textAcc.push({text: lineAcc.join(" "), top: $(this).children(".word-measure:last").offset().top});   return textAcc;};

最终结果是一列哈希,每个哈希包含内容和一行文本的垂直偏移量。

[{"text":"Some dummy set to","top":363}, {"text":"demonstrate...","top":382}, {"text":"The output of this","top":420}, {"text":"wrap-detector.","top":439}]

如果我只想要无格式的文本,

$(editableElement).text()
仍然会返回

"Some dummy set to demonstrate... The output of this wrap-detector."


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5148049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存