2016-06-09 8 views
4

Ich habe Satz von Link in so viele Seiten. ZB:Jquery Änderung Erweiterung auf Link on Fly

<ul> 
<li> <a href="someurl/somefile.html"> Some file </a> </li> 
<li> <a href="someurl/somefile1.html"> Some file1 </a></li> 
<li> <a href="someurl/somefile2.html"> Some file2 </a></li> 
</ul> 

<a href="someurl/someotherfile.html"> Some Other file </a> 
<a href="someurl/someotherfile1.html"> Some Other file1 </a> 

Jetzt will ich html-php Erweiterung ändern. ohne den Code php zu ändern.

Ich habe folgenden Code versucht, aber es funktioniert nicht.

$('a').each(function() { 
     $(this).html($(this).html().replace(".php", '.html')); 
}); 

Jede Hilfe wird geschätzt.

Antwort

4

Sie haben zwei Probleme in Ihrem Code:

1) Sie brauchen Attribut href zu ändern und nicht die HTML-Elemente

2) Sie haben die Argumente für den Ersatz html mit PHP getauscht. Das erste Argument sollte für die Übereinstimmung und das zweite Argument für die Ersetzung stehen.

$('a').attr('href',function(i,oldhref) { 
    return oldhref.replace(".html",'.php'); 
}); 

Arbeits Snippet:

$(function(){ 
 
$('a').attr('href',function(i,oldhref) { 
 
    return oldhref.replace(".html",'.php'); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
<li> <a href="someurl/somefile.html" target="_blank"> Some file </a> </li> 
 
<li> <a href="someurl/somefile1.html" target="_blank"> Some file1 </a></li> 
 
<li> <a href="someurl/somefile2.html" target="_blank"> Some file2 </a></li> 
 
</ul> 
 

 
<a href="someurl/someotherfile.html" target="_blank"> Some Other file </a> 
 
<a href="someurl/someotherfile1.html" target="_blank"> Some Other file1 </a>

+1

Good Job bro .. :) –

1

Nur replace verwenden, wie unten:

$(document).ready(function() { 
 
    $('a').each(function() { 
 
    $(this).attr('href',$(this).attr('href').replace('html','php')); 
 
    }); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li> <a href="someurl/somefile.html"> Some file </a> 
 
    </li> 
 
    <li> <a href="someurl/somefile1.html"> Some file1 </a> 
 
    </li> 
 
    <li> <a href="someurl/somefile2.html"> Some file2 </a> 
 
    </li> 
 
</ul> 
 

 
<a href="someurl/someotherfile.html"> Some Other file </a> 
 
<a href="someurl/someotherfile1.html"> Some Other file1 </a>

+0

danke Ihnen allen für Ihre Antwort !!! –

+4

Jederzeit .. Happy coding .. :) Ich glaube, Sie hätten @ MilindAnantwars Antwort akzeptiert .. Wie es einfach und elegant ist .. –

0

sollten Sie verwenden,

$('a').each(function() { 
    var href = $(this).attr('href'); 
    href = href.replace(".php", '.html') ; 
    $(this).attr("href", href); 
}); 

Hoffnung diese Antwort wird Ihnen helfen.

0

Versuchen Sie es mit diesem Code.

var href = $(this).attr('href'); 
href = href.replace(".php", '.html') ; 
$(this).attr("href", href);