2

有没有办法动态更改从 html 元素传递给 javascript 函数的参数?例如,假设我有以下内容:

<a id="myElement" href="javascript:myFunction('myParam');">Click me!</a>

如何将“myParam”更改为另一个参数,例如“myParam2”?使用 javascript 或 jquery 的答案对我来说很好。为简单起见,请随意假设我可以通过 document.getElementById('myElement') 或其他方式找到此元素。

4

3 回答 3

7

我会做的是绑定一个点击处理程序并this用来确定哪个被点击了。

$('#myElement').click(function () {
    console.log($(this).text()); // Should dump "Click me!" to the console.
});

然后,您可以将属性添加到您的链接,例如data-someParam="my value"并使用.attr().

于 2013-07-01T00:01:12.307 回答
3

为了完成你想要的,你可以做这样的事情

var ChangeParam = function(el,newParam) {
    //make sure things aren't broken:
    if(typeof el !== 'undefined' && el.href && typeof newParam !== 'undefined') {
        var parta = el.href.split('(')[0] + '('; //get the stuff before the param
        var partb = ')' + el.href.split(')')[1]; //get the stuff after the param
        el.href = parta + '"' + newParam + '"' + partb; //put it all together
    } else { return false; }
}

ChangeParam(document.getElementById('myElement'),'meow');

示例:http: //jsfiddle.net/q7R9B/2/


编辑:我把它做成了一个漂亮的功能,万岁!

于 2013-07-01T00:06:40.687 回答
1

应该也可以使用它:

document.getElementById('myElement').href = "javascript:myFunction('myParam2');"

干杯,LC

于 2013-07-01T00:09:59.757 回答