我有一个包含多个超链接的网页。他们都有href
“#
”。它们是动态生成的。如何点击任何一个函数时如何调用函数?我希望保留默认的超链接操作。
答案 0 :(得分:0)
window.onload = function () {
document.body.onclick = function (e) {
var target = e.target,
isLink = target.tagName.toLowerCase() === 'a';
if (isLink && target.getAttribute('href') === '#') {
lickFun(e);
}
};
function lickFun(e) {
console.log('this is link');
console.log('href equals #');
}
}
答案 1 :(得分:0)
这很容易就可以用简单的方法完成。香草JavaScript。这是怎么回事。
使用document.querySelectorAll("a[href='#']
选择href
为&{34; #
"。
使用for
循环遍历所有链接。
为所有链接添加事件侦听器。就像这样(此代码段包含动态生成的链接):
document.body.innerHTML = '<a href="#">Click me to call a function.</a><br/>' +
'<a href="#">Click me to call the same function.<\/a><br/>' +
'<a href="#">Click me to call the same function.<\/a><br/>' +
'<a href="#">Click me to call the same function.<\/a><br/>' +
'<a href="#">Click me to call the same function.<\/a><br/>' +
'<a href="http://www.cnn.com">My "href" is not "#".<\/a><br/>' +
'<a href="http://espn.go.com">Neither is mine.<\/a>'
var linkListener = document.querySelectorAll("a[href='#']");
for (i=0;i<linkListener.length;i++){
linkListener[i].addEventListener("click", linkFunction);
}
function linkFunction(){
alert("You clicked a link with an \"href\" of \"#\".");
}
&#13;
点击任何href
的&{34; #
&#34;将致电linkFunction
。
答案 2 :(得分:-1)
如果您使用的是jquery,可以这样做:
<a href="http://google.com">google</a>
<a href="#">test1</a>
<a href="#">test2</a>
<a href="#">test3</a>
<script>
$('a[href="#"]').bind('click',function(){
alert("Test");
})
</script>