如何动态更改XSL文件中HTML按钮元素的ID?

时间:2013-07-25 13:33:42

标签: javascript html xslt

我有一个带有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>

然而,似乎按钮('input')的id没有按预期改变。实际上,任何按钮上的click事件总是指向第一个按钮,而我希望它引用当前按钮。请问如何更改javascript函数以实现我想要的?

提前致谢

2 个答案:

答案 0 :(得分:0)

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

onclick="toggle('tb',getId(this));"

答案 1 :(得分:0)

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

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