2016-06-09 3 views
4

У меня есть ссылка на столько страниц. Например:Расширение расширения JQuery по ссылке на лету

<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> 

Теперь я хочу, чтобы изменить html к php расширения. без изменения кода php.

Я пробовал следующий код, но он не работает.

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

Любая помощь будет оценена по достоинству.

ответ

4

У вас есть две проблемы в вашем коде:

1) Вы должны изменить атрибут HREF, а не HTML элементов

2) Вы обмениваемых аргументы для замены HTML с PHP. первый аргумент должен быть для соответствия, а второй - для его замены.

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

Рабочая Отрывок:

$(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 братан .. :) –

1

Просто используйте replace, как показано ниже:

$(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

спасибо всем за ответ !!! –

+4

Anytime .. Счастливое кодирование .. :) Я чувствую, что вы должны были принять ответ @ MilindAnantwar .. Как его простой и элегантный .. –

0

Вы должны использовать,

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

Надежда этот ответ поможет вам.

0

Попробуйте использовать этот код.

var href = $(this).attr('href'); 
href = href.replace(".php", '.html') ; 
$(this).attr("href", href); 
Смежные вопросы