1

テキストを div 内でのみ移動したい場合は、次のようにします。

 <div class="field-item even">
 Job1<p><a href="">Name1</a></p>
 </div>

等...

そして、すべての.field-name-field-brief-text-team divをマージして削除するのが好きです

助けてください...ありがとう

 <div class="field field-name-field-team field-type-entityreference">
   <label>Team</label>
   <div class="field-items">

     <div class="field-item even">
     <p><a href="">Name1</a></p>
     </div>

    <div class="field-item odd">
    <p><a href="">Name2</a></p>
    </div>

    <div class="field-item even">
      <p><a href="">Name3</a></p>
    </div>

   </div>
 </div>

<div class="field field-name-field-brief-text-team field-type-text">
    <div class="field-items">

    <div class="field-item even">Job1</div>
    <div class="field-item odd">Job2</div>
    <div class="field-item even">Job3</div>

</div>
</div>
4

2 に答える 2

2

これであなたの要件が満たされると思います:

$('.field-name-field-brief-text-team .field-item').each(function (i) {
    var to = $('.field-item').eq(i)[0],
        toFirst = to.getElementsByTagName('*')[0],
        from = this,
        txt = document.createTextNode(this.textContent);
    to.insertBefore(txt,toFirst);
}).remove();

JS フィドルのデモ

上記をわずかに変更したバージョンで、jQuery セレクターから DOM ノードを取得する ( を使用get(0)) およびノー​​ドの最初の子要素を見つける( を使用) という別の方法を使用していtoますto.firstChild。これらは単なる代替手段であり、必ずしも以前のアプローチよりも推奨されるわけではありません。

$('.field-name-field-brief-text-team .field-item').each(function (i) {
    var to = $('.field-item').eq(i).get(0),
        toFirst = to.firstChild,
        from = this,
        txt = document.createTextNode(this.textContent);
    to.insertBefore(txt,toFirst);
}).remove();

JS フィドルのデモ

最速の ( JS Perfごとの) アプローチを提供するように編集されました。

$('.field-name-field-brief-text-team .field-item').each(function (i) {
    var to = $('.field-item')[i]
        toFirst = to.firstChild,
        txt = document.createTextNode(this.textContent);
    to.insertBefore(txt,toFirst);
}).remove();

JS フィドルのデモ


要求された (以下のコメントで):をテキストに追加するように編集されました。

$('.field-name-field-brief-text-team .field-item').each(function (i) {
    var to = $('.field-item')[i]
    toFirst = to.firstChild,
        txt = document.createTextNode(this.textContent + ': ');
    to.insertBefore(txt, toFirst);
}).remove();

JS フィドルのデモ

参考文献:

于 2013-02-11T14:24:38.833 に答える
1

これを使って:

$(document).ready(function() {
    target = $("div.field-name-field-team").find("div.field-item");
    source = $("div.field-name-field-brief-text-team").find("div.field-item");

    for(var i = 0; i < target.length; i++) {
        $(target[i]).html($(source[i]).html() + $(target[i]).html());
    }
});

出力:

<div class="field field-name-field-team field-type-entityreference">
   <label>Team</label>
   <div class="field-items">

     <div class="field-item even">Job1
     <p><a href="">Name1</a></p>
     </div>

    <div class="field-item odd">Job2
    <p><a href="">Name2</a></p>
    </div>

    <div class="field-item even">Job3
      <p><a href="">Name3</a></p>
    </div>

   </div>
 </div>

すべてを削除するには.field-name-field-brief-text-team div、次を使用します

$("div.field-name-field-brief-text-team").remove()
于 2013-02-11T14:12:28.770 に答える