2016-07-22 164 views
0

的匹配的字符串我有元素的列表:添加鏈接文本

<ul> 
<li> 
<a href="#link1">Text link 1</a> 
<span>My text contains text: Text link 1, that's it.</span> 
</li> 
<li> 
<a href="#link2">Text link 2</a> 
<span>My text contains text: Text link 2, that's it.</span> 
</li> 
<li> 
<a href="#link3">Text link 3</a> 
<span>My text contains text: Text link 3, that's it.</span> 
</li> 
<li> 
<a href="#link4">Text link 4</a> 
<span>My text contains text: Text link 4, that's it.</span> 
</li> 
</ul> 

我想有這樣的事情:

<ul> 
    <li> 
    <a href="#link1">Text link 1</a> 
    <span>My text contains text: <a href="#link1">Text link 1</a>, that's it.</span> 
    </li> 
    <li> 
    <a href="#link2">Text link 2</a> 
    <span>My text contains text: <a href="#link1">Text link 2</a>, that's it.</span> 
    </li> 
    <li> 
    <a href="#link3">Text link 3</a> 
    <span>My text contains text: <a href="#link1">Text link 3</a>, that's it.</span> 
    </li> 
    <li> 
    <a href="#link4">Text link 4</a> 
    <span>My text contains text: <a href="#link4">Text link 4</a>, that's it.</span> 
    </li> 
    </ul> 

所以,我想換行字符串在與它上面的鏈接匹配的範圍內。 請問,有什麼想法的我怎麼用jQuery來做到這一點?

回答

0

使用此Fiddle

$("li").each(function() { 
var getanchirlink = $(this).find('a').attr('href'); 
$(this).find('span').html($(this).find('span').html().replace(/Text link [0-9]/g,'<a href='+getanchirlink+'>'+$(this).find('a').html()+'</a>')); 
}); 
+0

非常感謝! – siojak

+0

沒有probs。我們在那裏幫助你 –

0
$(document).ready(function(){ 
    $("li").each(function(index) { 
     var link=$(this).find('a').attr('href'); 
     var txtlink=$(this).find('a').text(); 

     var span=$(this).find('span'); 

     var rep='<a href="'+link+'">'+txtlink+'</a>'; 
     var txtspan=span.text(); 
     var nSpan=txtspan.replace(txtlink,rep); 
     span.html(nSpan); 
    }); 
}); 

嘗試用這種...它的工作對我來說。

+0

完美地工作!謝謝! – siojak

+0

好的男人!很高興聽到。 –