Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript onclick函数变量未定义_Javascript_Html_Onclick - Fatal编程技术网

javascript 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)都将是未定义的。因此,

我有一个javascrpt onclick函数,但它说变量是未定义的,onclick来自标记

<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>