Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 JQuery将onclick字符串添加到不属于类的锚点_Javascript_Jquery - Fatal编程技术网

Javascript JQuery将onclick字符串添加到不属于类的锚点

Javascript JQuery将onclick字符串添加到不属于类的锚点,javascript,jquery,Javascript,Jquery,我有一些html代码,它是通过读取一些json加载的。在这些数据中有一些链接 我需要向这些链接的锚添加onclick=“myfunction();” 由于我不希望任何其他链接被更改,我已经为所有内部链接(未导入的链接)添加了一个类 我需要的是一些jquery,它可以做到这一点: 如果链接没有转到class=“internal”,则添加onclick=“myfunction();”** 所以,如果链接看起来像: <a href="" class="internal">Click me&

我有一些html代码,它是通过读取一些json加载的。在这些数据中有一些链接

我需要向这些链接的锚添加
onclick=“myfunction();”

由于我不希望任何其他链接被更改,我已经为所有内部链接(未导入的链接)添加了一个类

我需要的是一些jquery,它可以做到这一点:

如果链接没有转到
class=“internal”
,则添加onclick=“myfunction();”**

所以,如果链接看起来像:

<a href="" class="internal">Click me</a>

然后什么也没做

但如果是这样的话:

<a href="">Click me</a>

然后改为:

<a href="" onclick="myfunction();">Click me</a>

如何执行此操作?

使用选择器

使用选择器

使用:

使用:


将此参数传递给函数

onclick="myfunction(this);"


function myfunction(elem){
    if(elem.className == '' || elem.className !== 'internal') return;

}
或者,您可以从HTML中删除事件,并使用jQuery添加它

<a href="">Click me</a> then it's changed to this: <a href="" >Click me</a>

$('body').on('click' ,  'a' , function(e) {

     if( e.target.className == '' || e.target.className !== 'internal') e.preventDefault();

     myfunction()
});
然后更改为:
$('body')。在('click','a',函数(e)上{
如果(e.target.className=''| e.target.className!=='internal')e.preventDefault();
myfunction()
});

这只会添加将此参数传递给函数的单击事件

onclick="myfunction(this);"


function myfunction(elem){
    if(elem.className == '' || elem.className !== 'internal') return;

}
或者,您可以从HTML中删除事件,并使用jQuery添加它

<a href="">Click me</a> then it's changed to this: <a href="" >Click me</a>

$('body').on('click' ,  'a' , function(e) {

     if( e.target.className == '' || e.target.className !== 'internal') e.preventDefault();

     myfunction()
});
然后更改为:
$('body')。在('click','a',函数(e)上{
如果(e.target.className=''| e.target.className!=='internal')e.preventDefault();
myfunction()
});
这只会添加单击事件,而该事件只会添加,不添加

除非您有非常明确的理由在HTML上使用显式的
onclick
属性(我想不出一个好的理由),否则只需使用
$('a:not(.internal'))。on('click',myfunction)

只是,不要

除非您有非常明确的理由在HTML上使用显式的
onclick
属性(我想不出一个好的理由),否则只需使用
$('a:not(.internal'))。on('click',myfunction)