如何使用jquery查找和替换一些内容?

时间:2016-06-13 12:01:18

标签: jquery ajax

我在很多页面中都有以下链接。

以下是具有代码.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' ) );
});

4 个答案:

答案 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;
};