1

我喜欢只在 div 中移动文本,使它像:

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

ETC...

我喜欢合并并删除所有 .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 回答