Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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函数?_Javascript - Fatal编程技术网

如何传递引用到;这";关于javascript函数?

如何传递引用到;这";关于javascript函数?,javascript,Javascript,我有一个与此href的链接: href="javascript:foo(this);" 当我称之为“this”时,它指向窗口对象,而不是链接。如何传递对链接的引用 编辑注释:问题是如何通过href,而不是一般-我知道onclick 而不是复制id并生成getElementById,这不是“this”,它是对特定元素的DOM搜索,不需要在HTML中内联 答案是:不可能。当您在href中使用“javascript:…..”时,您正在全局调用此函数。不在链接的上下文中。 您可以尝试以下方法: &l

我有一个与此href的链接:

href="javascript:foo(this);"
当我称之为“this”时,它指向窗口对象,而不是链接。如何传递对链接的引用

编辑注释:问题是如何通过href,而不是一般-我知道onclick

而不是复制id并生成getElementById,这不是“this”,它是对特定元素的DOM搜索,不需要在HTML中内联

答案是:不可能。

当您在href中使用“javascript:…..”时,您正在全局调用此函数。不在链接的上下文中。 您可以尝试以下方法:

<a href="#" onclick="foo(this); return false;">MyLink</a>


首先,在锚点中添加一个ID字段

然后

使用标准Javascript:

<a id="someLink" href="javascript:foo(document.getElementById('someLink'));">


主观上,你更适合做以下事情:

<a href="javascript:void(0)" id="myAnchor">My Link</a>

然后进行编码:

document.getElementById('myAnchor').onclick = function() {
    // this is the <a> in here
    return false; // optional, prevents href from executing at all 
};
document.getElementById('myAnchor').onclick=function(){
//这是这里最重要的
return false;//可选,完全禁止执行href
};
这样,一切都变得更加清晰了。希望这有助于-ck

更好

<a href="javascript:void(0)" onclick="alert(this.href);">Link</a>


在此调用中,
将引用
a
元素。虽然不推荐使用这种事件绑定方法,但最好将其绑定到锚对象表示,而不是DOM元素。@Eliran Malka:这正是lxx所要求的。。。通过引用传递A元素。我知道它可以与onclick一起使用,我只是想知道为什么它不能与href一起使用。如果是全局调用的,则无法使用href获取对它的引用。这是因为,“命令”
javascript:
执行代码时完全没有上下文。这与在浏览器地址栏中写入内容相同。如果要获取元素的上下文,必须使用javascript事件(如onclick、onXXX等)
href=“#”
使页面滚动到顶部,但这会使我为文本中的每个链接插入两次id,这是我要避免的。
<a href="javascript:void(0)" onclick="alert(this.href);">Link</a>