Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击锚后,如何更改锚的href?_Javascript_Jquery - Fatal编程技术网

Javascript 单击锚后,如何更改锚的href?

Javascript 单击锚后,如何更改锚的href?,javascript,jquery,Javascript,Jquery,我有一个页面,可以通过AJAX获取数据。除此之外,我还有一个链接,可以将上述数据下载为CSV文件 我遇到的问题是,我需要在单击事件中传递一些参数,以便服务器可以返回正确的CSV文件 未经任何处理,链接如下所示: <a href="/manager/TargetResults.csv" class="black">Download Target Reports</a> var holder = $('.hidden-information').first();

我有一个页面,可以通过AJAX获取数据。除此之外,我还有一个链接,可以将上述数据下载为CSV文件

我遇到的问题是,我需要在单击事件中传递一些参数,以便服务器可以返回正确的CSV文件

未经任何处理,链接如下所示:

<a href="/manager/TargetResults.csv" class="black">Download Target Reports</a>
var holder = $('.hidden-information').first();                                   
var newOutlets = $('input[name="newoutlets"]', holder).val();
var queryDate = $('input[name="enddate"]', holder).val();
window.location.href = this.href + "?endDate=" + queryDate + "&newOutlets=" + newOutlets;
return false; //prevent default going-to-href behavior
<a href="#" onclick="f1()">jhhghj</a>
<a href="#" onclick="f1(); return false;">jhhghj</a>
在这一阶段更改href似乎不会及时更新链接,URL将保持在服务器上时的状态

单击URL后是否可以更改URL,或者是否需要查看其他方法


谢谢

您可以自己重定向窗口,如下所示:

<a href="/manager/TargetResults.csv" class="black">Download Target Reports</a>
var holder = $('.hidden-information').first();                                   
var newOutlets = $('input[name="newoutlets"]', holder).val();
var queryDate = $('input[name="enddate"]', holder).val();
window.location.href = this.href + "?endDate=" + queryDate + "&newOutlets=" + newOutlets;
return false; //prevent default going-to-href behavior
<a href="#" onclick="f1()">jhhghj</a>
<a href="#" onclick="f1(); return false;">jhhghj</a>
或者,无论更新那些隐藏字段是什么,都要更新链接,而不是单击链接时,例如:

$("#someField").change(function() {
  var holder = $('.hidden-information').first();                                   
  var newOutlets = $('input[name="newoutlets"]', holder).val();
  var queryDate = $('input[name="enddate"]', holder).val();                              
  $("a.black").attr("href", function() {
    return "/manager/TargetResults.csv" + "?endDate=" + queryDate + "&newOutlets=" + newOutlets;
  });
});

主要区别在于,这仍然允许正常的单击行为工作,ctrl+单击等。

您可以在此处使javascript重定向:-

    var holder = $('.hidden-information').first();                                   
    var newOutlets = $('input[name="newoutlets"]', holder).val();                                   
    var queryDate = $('input[name="enddate"]', holder).val();                                    
    var anchor = $(this);                                    
    var link = anchor.attr('href');                                   
    link = link + "?endDate=" + queryDate + "&newOutlets=" + newOutlets;
    anchor.attr('href', link);
   location.href=link;
有人可以禁用js,但你的代码完全基于js。
谢谢

您可以在链接中添加一个
span

<a href="/manager/TargetResults.csv" class="black"><span>Download Target Reports</span></a>


…然后在
span
上钩住
click
事件,这将发生在链接上的
单击之前。

如果没有href,单击将重新加载当前页面,因此您需要类似以下内容:

<a href="/manager/TargetResults.csv" class="black">Download Target Reports</a>
var holder = $('.hidden-information').first();                                   
var newOutlets = $('input[name="newoutlets"]', holder).val();
var queryDate = $('input[name="enddate"]', holder).val();
window.location.href = this.href + "?endDate=" + queryDate + "&newOutlets=" + newOutlets;
return false; //prevent default going-to-href behavior
<a href="#" onclick="f1()">jhhghj</a>
<a href="#" onclick="f1(); return false;">jhhghj</a>

或者像这样防止滚动:

<a href="/manager/TargetResults.csv" class="black">Download Target Reports</a>
var holder = $('.hidden-information').first();                                   
var newOutlets = $('input[name="newoutlets"]', holder).val();
var queryDate = $('input[name="enddate"]', holder).val();
window.location.href = this.href + "?endDate=" + queryDate + "&newOutlets=" + newOutlets;
return false; //prevent default going-to-href behavior
<a href="#" onclick="f1()">jhhghj</a>
<a href="#" onclick="f1(); return false;">jhhghj</a>

或在f1函数中返回false,并且:

<a href="#" onclick="return f1();">jhhghj</a>

……或者,以一种不引人注目的方式:

<a href="#" id="abc">jhg</a>
<a href="#" id="myLink">jhhghj</a>

<script type="text/javascript">
  document.getElementById("myLink").onclick = function() {
    document.getElementById("abc").href="xyz.php"; `enter code here`
    return false;
  };
</script>

document.getElementById(“myLink”).onclick=function(){
document.getElementById(“abc”).href=“xyz.php”`在此处输入代码`
返回false;
};

投反对票的人能否提供一些反馈,以便我的问题在将来更好地解决?