我有这个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;
}
我希望该功能可以根据按下的按钮将浏览器重定向到其他网站
答案 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;
}