2013-01-11 68 views
1

試圖找到一種方法來將第一個單詞包裹在span標記中。文本換行總是落後的最後一個環節將最後一個鏈接後的第一個單詞換成jQuery

<div class="style1"> 
    <a class="style2" href="http://www.example.com">a</a> 
    <a class="style3" href="http://www.example.com">b</a> 
    test test test test test test test 
</div> 

我想第一test被包裹在<span>test</span>

這將在更深入這裏解決

小提琴使用: http://jsfiddle.net/evanmoore/awwTA/1/

回答

2
$('.pag').contents().filter(function() { 
    // IE doesn't support `textContent` proerty, you can replace it with $(this).text() 
    if (this.nodeType === 3 && $.trim(this.textContent) !== '') { 
     $(this).wrap('<div/>').parent().html(function (i, v) { 
      return v.replace(/(\w+\s)/, '<span>$1</span>') 
     }).replaceWith(function() { 
      return this.innerHTML; 
     }) 
    } 
}) 

http://jsfiddle.net/XKjtq/

+0

感謝您的幫助。我將它與這個腳本結合起來,但是當我這樣做時,我同時看到了兩個結果。 http://jsfiddle.net/evanmoore/36Wwt/1/ – Evan

+1

@Evan試試這個:http://jsfiddle.net/63PQr/或這個http://jsfiddle.net/R8n7Z/ – undefined

+0

是的。而已。謝謝你。爲什麼選擇的盒子更厚一點? – Evan

0

試試這個碼位:

<script> 
    data = $(".style1").html().trim().split("\n"); 
    str = data[data.length - 1]; 
    data.splice(data.length - 1, 1); 
    str = str.trim().split(" "); 
    str[0] = "<span>" + str[0] + "</span>"; 
    data[data.length] = str.join(" "); 
    $(".style1").html(data.join("\n")); 
</script> 
相關問題