0

我有一个带有 id 属性的按钮,我想让它的值动态改变。我通过我定义的“setId”和“getId”函数使用两个 javascript 函数。实际上,设置的当前按钮的 id 属性(参见下面的“setId”函数)必须与作为 javascript 代码参数的那个相同(参见下面“toggle”中的“getId”函数调用)。

下面的代码片段是静态 html 行为的示例,

<td align="right">KO<input id="1" type="button"  
value="[+] Expand" onclick="toggle('tb','1');"/></td>

为了使其动态化,我使用下面的“setId”和“getId”函数

<head>
....
<script type="text/javascript">

var setId = (function () {
return function(element) {
if (!element.id) {
    element.id+ = 1;
    }
  };
}());

var getId = (function () {
 return function(element) {
return element.id;
};
 }());

</script>
</head>

为了让它逐渐改变,我在“body”html元素中如下调用它们

<td align="right">KO<input id="setId(this);" type="button"  
value="[+] Expand" onclick="toggle('tb',getId(this));"/></td>

尽管如此,按钮的id('input')似乎没有像预期的那样改变。事实上,任何按钮上的点击事件总是指第一个按钮,而我希望它指的是当前按钮。请问我怎么能改变javascript函数来实现我想要的?

提前致谢

4

2 回答 2

0

在 xsl 转换时创建 id,或者您需要编写一个 javascript,删除旧按钮并添加具有新 id 的新按钮。

我不知道有任何其他方法可以动态更改 html 元素的 id。

于 2013-07-25T13:46:15.667 回答
0

好吧,使用 Javascript 代码toggle('tb','getId(this);');,您正在调用一个以toogle字面给出的两个字符串参数命名的函数,一个是 string tb,另一个是 string getId(this);。如果要调用函数getId并将其结果传递给函数,请toggle使用

onclick="toggle('tb',getId(this));"
于 2013-07-25T13:40:39.297 回答