我正在尝试在点击其中一个链接时将url参数(在本例中为ID)发送到另一个页面。我已经尝试了许多方法并找到了一个 NEARLY 可以工作的方法,除了当我点击非链接元素(例如表单按钮)时它仍然会附加网址。
事件监听器如下:
window.addEventListener("click", function(e) {
var href = e.target.getAttribute("href");
if(href) {
location.href = href + "?id="+id_search_input;
e.preventDefault();
}
});
链接:
<ul id="nav_ul">
<li><a href="ask_q.html">Ask Questions</a></li>
<li><a href="page1.html">Page 1</a></li>
<li><a href="page3.html">Page 3</a></li>
</ul>
我尝试传递给网址:?id=0123456789
我认为事件监听器需要处于点击之外的其他事情上?
谢谢!
答案 0 :(得分:1)
在uls id上添加一个监听器,然后点击
更改url<ul id="nav_ul">
<li><a href="ask_q.html" >Ask Questions</a></li>
<li><a href="page1.html" >Page 1</a></li>
<li><a href="page3.html" >Page 3</a></li>
</ul>
JS:
$('#nav_ul').on('click', 'a', function(e){
$(this).before($(this).clone());
$(this).attr('href', old+'?123');
$(this).remove();
})
在此处尝试:(已更新) http://jsfiddle.net/04cx09c1/2/
答案 1 :(得分:1)
这是纯粹的JS。我刚刚在<a>
标签上添加了一个课程,但您可以抓住<ul>
并挖掘下来,如果您愿意的话。
var navElms = document.getElementsByClassName('nav'),
i;
for(i = 0; i < navElms.length; i++) {
navElms[i].addEventListener('click', function(e) {
e.preventDefault();
var href = this.getAttribute("href"),
test = document.getElementById('test');
test.innerHTML = "<p>" + href + "?id=234234234</p>";
});
}