繁体   English   中英

jQuery添加onclick字符串来锚定不是类的

[英]JQuery add onclick string to anchor that are not of a class

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

我需要添加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>

我怎样才能做到这一点?

使用选择器

$('a').not('.classname').click(function() { ... });

使用not psuedoselector

$('a:not(".internal")').on('click', function () {
    // click handler code here
});

只是,不要。

除非您有在HTML上使用显式onclick属性的特定原因 (而且我想不出为什么$('a:not(.internal)').on('click', myfunction);的充分理由), $('a:not(.internal)').on('click', myfunction);只需使用$('a:not(.internal)').on('click', 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()
});

这只会添加点击事件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM