如何处理没有ID的链接?它只有一个类名“classbeauty”。
现在我需要知道用户是否点击了该链接。
如果点击了链接,我只需要拨打alert("yes link clicked");
。
我不知道如何在JavaScript中处理事件。
我该怎么做?
答案 0 :(得分:13)
如果jQuery是一个选项:
$("a.classbeauty").click(function(){
alert("yes link clicked");
});
如果您需要纯JavaScript:
var elements = document.getElementsByTagName("a");
for(var i=0; i<elements.length; i++){
if (elements[i].className == 'classbeauty') {
elements[i].onclick = function(){
alert("yes link clicked!");
}
}
}
如果您需要Greasemonkey:
function GM_wait() {
if(typeof unsafeWindow.jQuery != 'function') {
window.setTimeout(wait, 100);
} else {
unsafeWindow.jQuery('a.classbeauty').click(function(){
alert('yes link clicked');
});
}
}
GM_wait();
答案 1 :(得分:3)
function getElementsByClassName(class_name) {
var elements = document.getElementsByTagName('*');
var found = [];
for (var i = 0; i < elements.length; i++) {
if (elements[i].className == class_name) {
found.push(elements[i]);
}
}
return found;
}
getElementsByClassName("YourClass")[0].onclick = function () { alert("clicked"); };
顺便说一句,这是纯粹的javascript。这里的每个人都喜欢jQuery(包括我)。
答案 2 :(得分:2)
如果您控制源代码,则可以内联添加脚本。
<a onclick="alert('yes link clicked'); return false">Link</a>
如果您定位的是现代浏览器,则可以选择getElementsByClassName的元素。这里的其他几个人已经展示了他们自己的这个功能的实现。
var node = document.getElementsByClassName('classbeauty')[0]
node.onclick = function(event){
event.preventDefault()
alert("yes link clicked")
}
答案 3 :(得分:1)
for (var i= document.links.length; i-->0;) {
if (document.links[i].className==='classbeauty') {
document.links[i].onclick= function() {
alert('yes link clicked');
return false; // if you want to stop the link being followed
}
}
}
答案 4 :(得分:0)
function handleLinks(className, disableHref) {
var links = document.body.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
if (links[i].className == className) {
links[i].onclick = function(){
alert('test')
if (disableHref) {
return false; //the link does not follow
}
}
}
}
}
handleLinks('test', true)
您可以在此链接进行测试: http://jsfiddle.net/e7rSb/
答案 5 :(得分:0)
我不确定这是否是一个选项,但是当点击链接时我会翻转一个标志,然后只测试该变量。
//javascript
var _cbClicked = false;
function checkClicked() {
if (_cbClicked) alert("link was clicked");
return false;
}
//html
<a href="#" class="classbeauty" onclick="_cbClicked = true; return false;">Link Text</a>
<a href="#" onclick="checkClicked();">Check Link</a>
非常简单,纯粹的JS:)