传递按钮ID功能

时间:2014-07-23 17:48:55

标签: jquery button

我有这个html按钮,我试图将id传递给函数

<button class= "btn1" id="buttonid1">Set Text</button>
<button class= "btn1" id="buttonid2">Set Text</button>                      

这是Javascript to it

$(".btn1").click(function(){
    doSomething();                  
    });

function doSomething() {
    goUrl = 'http://www.example/' 
    + $(this).attr('id'); 
    window.location = goUrl;
    }

我希望该功能可以根据按下的按钮将浏览器重定向到其他网站

5 个答案:

答案 0 :(得分:2)

为什么要创建匿名函数来运行函数。只需直接传递函数:

$(".btn1").click(doSomething);

您不必更改doSomething功能。

答案 1 :(得分:1)

尝试这种方式:

$(".btn1").click(function(){
    doSomething($(this).attr('id'));                  
});


function doSomething(myId) {
goUrl = 'http://www.example/' 
+ myId; 
window.location = goUrl;
}

答案 2 :(得分:1)

我认为ID被严重滥用。你可以直接传递按钮:

$(".btn1").click(function(){
    doSomething(this);                  
});

function doSomething(button) {
    goUrl = 'http://www.example/' 
    + button.id; 
    window.location = goUrl;
}

答案 3 :(得分:1)

您可以使用data-*属性来存储您想要附加到您的网址的ID:

<强> HTML:

<button class="btn" data-id="1">Button id 1</button>
<button class="btn" data-id="2">Button id 2</button>

使用您的js,您只需阅读data-id的值并转到该网址:

<强> JavaScript的:

$(".btn").click(function(){

    // go to url e.g. http://example.com/1
    window.location.href = "http://example.com/" + $(this).data("id");

});

最后,看起来,您的按钮充当链接(做导航),您应该考虑将它们更改为链接。 (a href)。根据具体情况考虑这个问题。 window.location.href已经模拟了与点击链接相似的行为。您可以从javascript redirect.

了解更多相关信息

干杯。

答案 4 :(得分:0)

问题是您已在函数中包裹doSomething,因此this的上下文不再是您的元素。

这是代码,带有更正:

$(".btn1").click(doSomething);

function doSomething() {
    goUrl = 'http://www.example/' 
    + $(this).attr('id'); 
    window.location = goUrl;
}