单击<a href...=""> with event listener</a>时,将url参数从一个页面动态传递到另一个页面

时间:2014-08-13 20:32:06

标签: javascript html hyperlink href

我正在尝试在点击其中一个链接时将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

我认为事件监听器需要处于点击之外的其他事情上?

谢谢!

2 个答案:

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

    });
}

http://jsfiddle.net/31nbwuxv/