2016-08-24 56 views
2

例如說我有以下HTML:如何通過div循環找到最近的跨度併爲每個跨度添加不同的東西?

<div class="div-style">div text</div> <span>span text</span> 
<div class="div-style">another div</div> <span>another span</span> 
<div class="div-style">hello</div> <span>world</span> 

現在我想做的是:(使用jQuery)

  1. 轉到每個<div>與類「格式」
  2. 找到以下內容<span>
  3. 將當前<span>的文本追加到跨度(實際上在跨度文本中重複跨度文本,因此第一個跨度將顯示「跨度文本跨度文本」)
+0

嘗試'$( '格式 '),每個(函數(){VAR T = $(本)。接下來(' 跨度')文本()。 (this).next('span')。text($(this).next('span')。text()+ t); })' – guradio

回答

2

$('.div-style').each(function(){ 
 
var t = $(this).next('span').text(); 
 

 
$(this).next('span').text($(this).next('span').text() + t); 
 

 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="div-style">div text</div> <span>span text</span> 
 
<div class="div-style">another div</div> <span>another span</span> 
 
<div class="div-style">hello</div> <span>world</span>

試試這個

2

$('.div-style').each(function(i, node){ 
 
    var nextSpan = $(node).next(); 
 
    nextSpan.append(nextSpan.html()); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="div-style">div text</div> <span>span text</span> 
 
<div class="div-style">another div</div> <span>another span</span> 
 
<div class="div-style">hello</div> <span>world</span>

3

在這裏你去:https://jsfiddle.net/rg9zanks/

$('.div-style + span').each(function() { 
    var span = $(this) 
    span.after('<span>' + span.text() + '</span>') 
}) 

您可以利用+選擇器來避免使用.next()函數。

遵循與類 .div-style
  • 環體通過使用.each()
    1. 選擇跨度,創建使用after()選擇的跨度後,新跨越,並使用.text()相同的文字填充它。
  • +1

    與相鄰兄弟選擇器的好工作。我已經給你提供了一個提醒我用它來代替'.next()'(並且當我將它編輯到我現有的答案中時不抱怨)。 – nnnnnn

    +0

    @nnnnnn alls公平的時候去那個甜美的甜蜜代表:p – m0meni

    +1

    呃...通常我會盡量不讓其他答案影響我(雖然我會先瀏覽一下以確認我沒有發佈重複內容),但在這種情況下,我認爲我的答案的關鍵部分是使用'.html ()'的蘊涵循環,所以在'+'中加入只是一種獎勵。 – nnnnnn

    3

    字面上一行代碼使用jQuery,有一點是這樣的:

    $(".div-style + span").html(function(i,v) { return v + v; });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
     
    <div class="div-style">div text</div> <span>span text</span> 
     
    <div class="div-style">another div</div> <span>another span</span> 
     
    <div class="div-style">hello</div> <span>world</span>

    延伸閱讀:

    +1

    呵呵,你接受了我的'+'號。我想你也學到了一些東西:p。我會給你一個upvote,告訴我你可以將一個函數傳遞給'.html()'方法。 – m0meni

    +1

    @ AR7 - 是的,感謝兄弟。你提醒我已經知道,但從來沒有記得使用過的東西。當然,這個答案比使用'.next()'更加明智,尤其是當我明顯地拍攝短片時。許多jQuery方法讓你以這種方式傳遞函數('.text()','.css()'等)。 – nnnnnn

    +0

    哇!清楚的答案 –

    2
    $(function() { 
        $("div.div-style").next('span').each(function() { 
         $(this).append($(this).text()); 
        }); 
    
    }); 
    
    相關問題