我在很多页面中都有以下链接。
以下是具有代码.i.e。:
的php文件输入:
<a href="someurl/someotherfile.html"> Some Other file </a>
<a href="someurl/someotherfile1.html"> Some Other file1 </a>
<p><a href="someurl/someotherfile2.html"> Some Other file2 </a></p>
<div><a href="someurl/someotherfile2.html"> Some Other file2 </a></div>
<span><a href="someurl/someotherfile2.html"> Some Other file2 </a></span>
输出:
<a href="someurl/someotherfile.php"> Some Other file </a>
<a href="someurl/someotherfile1.php"> Some Other file1 </a>
<p><a href="someurl/someotherfile2.php"> Some Other file2 </a></p>
<div><a href="someurl/someotherfile2.php"> Some Other file2 </a></div>
<span><a href="someurl/someotherfile2.php"> Some Other file2 </a></span>
现在,我想在href属性中将html更改为php扩展名。没有修改php代码。
我尝试使用以下代码但不起作用。注意到在这段代码中发生。
$('a').each(function() {
$(this).html( $(this).html().replace( ".php", '.html' ) );
});
答案 0 :(得分:4)
尝试:
使用attr('href',value)
设置新的href并使用.replace
将html替换为php
$( document ).ready(function() {
$('a').each(function() {
$(this).attr('href',$(this).attr('href').replace( ".html", '.php'));
});
});
答案 1 :(得分:0)
.html()
更改<a>
标记内的内容,而不是更改href
值所需的href
内的内容。
$('a').each(function() {
$(this).attr('href', $(this).attr('href').replace(".html", ".php"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="someurl/someotherfile.html"> Some Other file </a>
<a href="someurl/someotherfile1.html"> Some Other file1 </a>
<p><a href="someurl/someotherfile2.html"> Some Other file2 </a>
</p>
<div><a href="someurl/someotherfile2.html"> Some Other file2 </a>
</div>
<span><a href="someurl/someotherfile2.html"> Some Other file2 </a></span>
答案 2 :(得分:0)
你应该写: -
$('a').each(function() {
var hrefVal = $(this).attr('href');
$(this).prop("href", hrefVal.replace( ".html", '.php' ) );
});
点击此链接prop vs attr。
答案 3 :(得分:0)
您可以在点击链接时更改网址。清除JS似乎更快
function replaceHref() {
this.href = this.href.replace('.html','.php');
return true;
};
window.onload = function() {
var arr = document.getElementsByTagName('a');
for(i=0; i < arr.length; i++)
arr[i].onclick = replaceHref;
};