当网页上的某个内容发生变化时,我试图给按钮一个onclick事件。我尝试过很多不同的方式,但都没有。我做错了什么?
以下是我的尝试。
document.getElementById(subDiv).onclick = function() { alert('Error. There is an error on the the page. Please correct that then submit the page'); };
document.getElementById(subDiv).onclick = "alert('Error. There is an error on the the page. Please correct that then submit the page');";
function redErrorAlert()
{
alert('Error. There is an error on the the page. Please correct that then submit the page');
}
document.getElementById(subDiv).onclick = redErrorAlert;
document.getElementById(subDiv).setAttribute('onclick',redErrorAlert(), false);
document.getElementById(subDiv).setAttribute('onclick','redErrorAlert()', false);
注意:subDiv是一个包含元素id的变量。
答案 0 :(得分:2)
在对它进行查询之前,您需要等待创建DOM树。
确保这一切都发生在 DOM树之后创建的上下文中:
window.onload = function() {
document.getElementById(subDiv).onclick = function() { alert('Error. There is an error on the the page. Please correct that then submit the page'); };
};
答案 1 :(得分:1)
document.getElementById()接受一个字符串,其中包含您要查找的元素的ID。假设您正在寻找id为'subDiv'的元素,您应该调用document.getElementById('subDiv')。
(你的代码中的变量subDiv也可能是一个包含ID的字符串,但是因为你没有提到它我假设它没有。)
编辑:如果你要使用virstulte建议使用jQuery,你需要在document.ready事件中附加一个函数,以确保在你的时候构建了DOM。代码运行。例如:
$(document).ready(function() {
$("#subDiv").click(function() { alert("Test!"); });
});
答案 2 :(得分:0)
这听起来像jQuery领域。一旦你了解了jQuery的细节,这样的事情很容易照顾,你会发现自己编写的JavaScript要少得多。
获取jQuery然后将其放入代码中以绑定事件:
$('#idOfElementToBindClickEvent').click(function(){
alert('Error.');
});
jQuery基本上提供了一种使用类似CSS的选择器来操作元素的方法。
答案 3 :(得分:0)
试
document.getElementById(subDiv).onclick = alert('Error. There is an error on the the page. Please correct that then submit the page');
或
function redAlert() {
alert('Error. There is an error on the the page. Please correct that then submit the page');
}
document.getElementById(subDiv).onclick = redAlert();
第一种情况:您需要调用该函数,并且已经分配了一个字符串
第二种情况:你已经分配了一个函数而你没有调用这个函数