jQuery:如何在不同的字符串中添加换行符以分隔2中的句子?

我有不同的句子,都有双引号,如:

Sentence one "ends like this"

Sentence two"ends like that"

Sentence three "another ending"

全部在页面上。 基本上所有的值都是不同的,我试图在双引号之前有一个换行符,所以它就像

 

Sentence one
"ends like this"

Sentence two
"ends like that"

Sentence three
"another ending"

我有点混淆应该使用哪个jQuery函数诚实,分裂,文本之间? 任何帮助将不胜感激,我需要了解如何做到这一点…非常感谢!

您可以匹配

元素,然后将函数传递给html() 。 将为每个元素调用该函数,将传递当前元素的内部HTML标记,并且必须返回新标记。

从那里,您可以使用replace()在第一个双引号字符之前插入
元素:

 $("h3.myClass").html(function(index, currentHtml) { return currentHtml.replace('"', '
"'); });

您可以在这个小提琴中测试这个解决方案。

创建一个带有jQuery对象的函数,获取其html并进行更改

 function addBR($el) { 

获取元素的HTML

 var originalhtml = $el.html(); 

用引号拆分html,并用新的
加入它们

 var newhtml = originalhtml.split('"').join('
"');

应用新的HTML

 $el.html(newhtml); 

就是这样。
叫它

 addBR(jQuery element); 

示例: http : //jsfiddle.net/XFC5u/

我会看看Javascript split()方法,但实质上你有正确的想法。 您希望基于双引号(\“)进行拆分,这将返回一个包含双引号的所有拆分的数组。

所以会发生这样的事情:

var array = $(".myClass").text().split("\""); //array = [Sentence one, ends like this, ];

(不是100%确定代码是否正确所以有人请检查> <)

然后从那里你可以用包含的内容重新创建文本
。 至少那是我如何去做的过程。

另外请记住,split方法确实从数组中删除了\“(因为它使用它作为限制器来分割它们),因此请确保在重新创建文本时读取它们。

至于如果Jquery作为一种特定的方式,我不确定。 如果有人想提高我的答案,请随意。

看看这里看到这段代码有效:

 $(".myClass").each(function() { var text = $(this).text(); var q = text.indexOf('"'); $(this).html(text.substr(0, q) + "
" + text.substr(q)); });

只是用一些基本的javascript(在jQuery循环中)

 ​$(".myClass").each(function() { // for each item of myClass var text = $(this).text(); // temp store the content var pos = text.indexOf('"'); // find the position of the " $(this).html(text.slice(0,pos) + '' + text.slice(pos)); // slice before + 
+ slice after = new content });​​​​​​​​​​

小提琴:
http://jsfiddle.net/JaPdT/

 $('.myClass').each(function(){ if($(this).text().indexOf('"') >=0 ){ $(this).text( $(this).text().replace('"', '
"') ) } })