javascript onclick函数变量未定义
我有一个javascrpt onclick函数,但它说变量是未定义的,onclick来自标记javascript onclick函数变量未定义,javascript,html,onclick,Javascript,Html,Onclick,我有一个javascrpt onclick函数,但它说变量是未定义的,onclick来自标记 <a href="#" title="Click to select" rowno="'+NROW+'" name="'+NAME+'" onClick="remname(rowno,name);"></a> 在onclick属性中编写的代码部分在一个函数中运行,其中引用onclick属性所属的元素。任何其他非全局变量(在您的例子中是rowno和name)都将是未定义的。因此,
<a href="#" title="Click to select" rowno="'+NROW+'" name="'+NAME+'" onClick="remname(rowno,name);"></a>
在onclick属性中编写的代码部分在一个函数中运行,其中引用onclick属性所属的元素。任何其他非全局变量(在您的例子中是rowno和name)都将是未定义的。因此,您可以使用
此
引用访问名为getAttrubute()
的方法的DomeElement来获取属性值,如下所示:
remname(this.getAttribute('rowno'), this.getAttribute('name'))
但是,我还建议使用事件侦听器,而不是on*属性。这将是一种更好、更容易维持的做法 HTML
<a href="#" id="magicAnchor" title="Click to select" rowno="'+NROW+'" name="'+NAME+'"></a>
您可以稍后在remname()函数中访问这些变量,而不是传递这些变量,如
var remname=function(){
var rowno=document.getElementById("selectme").getAttribute("data-rowno");
var NAME=document.getElementById("selectme").getAttribute("data-name");
console.log(rowno+' '+NAME);
}
这是html
<a href="#" id="selectme" title="Click to select" data-rowno="'+NROW+'" data-name="'+NAME+'" onclick="remname()">abc</a>
请您也发布remname(rowno,name)
的定义。此外,如果您可以将该问题复制成一个小提琴,这将非常有用。您不能像这样添加自己的属性。尝试使用data-*代替。(这解决了问题的一半。稍后让remname接受dom元素,然后(!)再次读取这些属性)Javascript代码在哪里?如果可能,发布HTML和Javascript代码。我们会帮助你的,兄弟。请考虑编辑你的帖子,以添加更多的解释你的代码做什么,为什么它会解决这个问题。如果答案大多只包含代码(即使有效),通常也无法帮助OP了解他们的问题。请编辑代码以获得此答案。getAttribue现在可以使用了谢谢:)
var remname=function(){
var rowno=document.getElementById("selectme").getAttribute("data-rowno");
var NAME=document.getElementById("selectme").getAttribute("data-name");
console.log(rowno+' '+NAME);
}
<a href="#" id="selectme" title="Click to select" data-rowno="'+NROW+'" data-name="'+NAME+'" onclick="remname()">abc</a>