javascript onclick 函数变量未定义

javascript onclick function variable undefined

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

<a href="#" title="Click to select" rowno="'+NROW+'" name="'+NAME+'" onClick="remname(rowno,name);"></a>

我收到一条错误消息说 'rowno' 未定义

然而,这只发生在 IE11 IE7 完美运行,运行 功能

javascript :

    function remname(NAME,ROW)
{
    if (confirm('Remove registration entry '+NAME+'?'))
    {
        ***FUNCTION USING ANOTHER SYSTEM***
    }
}

写在onclick属性中的代码部分在函数中运行,其中this引用onclick属性所属的元素。任何其他非全局变量(在您的情况下 rownoname)将是未定义的。因此,您可以使用 this 引用来访问具有名为 getAttrubute() 的方法的 DOMElement 来获取属性值,如下所示:

remname(this.getAttribute('rowno'), this.getAttribute('name'))

但是,我也建议使用事件侦听器而不是 on* 属性。那将是一种更好、更容易维护的做法。

HTML

<a href="#" id="magicAnchor" title="Click to select" rowno="'+NROW+'" name="'+NAME+'"></a>

JavaScript

document.getElementById('magicAnchor').addEventListener('click', function() {
    if (confirm('Remove registration entry '+ this.getAttribute('name') +'?'))
    {
        ***FUNCTION USING ANOTHER SYSTEM***
        // to access rowno attribute use: this.getAttribute('rowno')
    }
});

您可以稍后在 rename() 函数中访问它们,而不是传递变量,例如

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>