JQuery通过URL的一部分更改HREF

时间:2011-12-15 16:19:51

标签: jquery html

我的网页上有一个网址,其中包含动态元素...

<a class="TOPHEADING" href="/CRM/eware.dll/SessionFind?&Act=200&CLk=T&Key0=1&Key1=2" target="EWARE_MID">

即我想用以下代码为href创建key1和key0值...

var strPath = document.URL;
var arrayApp = strPath.split("&Act");
var strStartPath = arrayApp[0]+GetKeys()+"&Act=432"+"&dotnetdll=Customs&dotnetfunc=RunCompanySummary";
document.location.href= strStartPath;

新链接将保存在strStartPath变量中。

所以基本上我需要在页面加载时将部署的href替换为变量strStartPath的href。

这在JQuery中是否可行,如果是这样的话?

1 个答案:

答案 0 :(得分:2)

它“看起来很复杂”?这很简单,让我们打破这段代码:

function getParameterByName(name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.href);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

此函数获取一个参数“name”。 前两行是正则表达式,第三行定义了一个新的正则表达式对象。 第4行执行正则表达式exp。在“window.location.hre”(当前页面的URL)上,条件检查当前URL中是否存在表达式的结果。

基本上,满足您的需求:

<a href="http:/www.bla.com/g.php?key0=11212&key1=2222&bla=wewe" id="link1">

<script>
var link = document.getElementById("link1");
var url  = link.href;
var keyZeroValue = getParametersByname("key0" , url);
var keyOneValue = getParametersByname("key1" , url);

function getParameterByName(name,url)
{

  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(url);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

这应该做的工作。