3

次のように、すべてに二重引用符が含まれるさまざまな文があります。

<h3 class="myClass">Sentence one "ends like this"</h3>
<h3 class="myClass">Sentence two"ends like that"</h3>
<h3 class="myClass">Sentence three "another ending"</h3>

すべてを 1 ページに。基本的にすべての値が異なり、二重引用符の直前に改行を入れようとしているので、次のようになります

<h3 class="myClass">Sentence one <br/>"ends like this"</h3>
<h3 class="myClass">Sentence two <br/>"ends like that"</h3>
<h3 class="myClass">Sentence three <br/>"another ending"</h3>

正直なところ、分割、テキストの間でどのjQuery関数を使用する必要があるかについて、私はちょっと混乱していますか?助けていただければ幸いです。これを行う方法を理解する必要があります...どうもありがとう!

4

6 に答える 6

4

<h3>要素を一致させてから、関数をhtml()に渡すことができます。この関数は要素ごとに呼び出され、現在の要素の内部HTMLマークアップが渡され、新しいマークアップを返す必要があります。

そこから、replace()<br />を使用して、最初の二重引用符の前に要素を挿入できます。

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

このフィドルでこのソリューションをテストできます。

于 2012-08-21T20:12:47.787 に答える
1

このコードが機能していることを確認するには、こちらをご覧ください。

$(".myClass").each(function() {
    var text = $(this).text();
    var q = text.indexOf('"');
    $(this).html(text.substr(0, q) + "<br />" + text.substr(q));
});
于 2012-08-21T20:11:09.907 に答える
1

私はJavascript の split() メソッドを見てみたいと思いますが、本質的には正しい考えを持っています。二重引用符 (\") に基づいて分割すると、二重引用符が発生するすべての分割の配列が返されます。

したがって、次のようなことが起こります。

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

(コードが正しいかどうかは 100% わからないので、誰か確認してください ><)

そこから、含まれている を使用してテキストを再作成できます
。少なくとも、それは私がそれを行う方法のプロセスです。

また、split メソッドは配列から \" を削除することを覚えておいてください (これは、それらを分割するためのリミッターとして使用されるためです)。そのため、テキストを再作成するときは必ずそれらを readd してください。

これを行う具体的な方法として Jquery を使用するかどうかについては、よくわかりません。誰かが私の答えを改善したい場合は、お気軽に。

于 2012-08-21T20:17:22.957 に答える
1

いくつかの基本的な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) + '</br>' + text.slice(pos));    // slice before + <br> + slice after = new content
});​​​​​​​​​​

フィドル:
http://jsfiddle.net/JaPdT/

于 2012-08-21T20:19:36.360 に答える
1

jQuery オブジェクトを取り、その html を取得し、それを変更する関数を作成します。

function addBR($el) {

要素の html を取得する

var originalhtml = $el.html();

HTML を引用符で分割し、新しい <br /> で結合します

var newhtml = originalhtml.split('"').join('<br />"');

新しいhtmlを適用

$el.html(newhtml);

以上です。
で呼び出す

addBR(jQuery element);


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

于 2012-08-21T20:15:22.327 に答える
0
$('.myClass').each(function(){ 
    if($(this).text().indexOf('"') >=0 ){  
        $(this).text( $(this).text().replace('"', '<br/>"')  )   
    }
})
于 2012-08-21T20:12:31.757 に答える