[英]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() { ... });
$('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.