我想在html
内容发生变化时触发操作。下面的代码更改了myId
元素的html内容,当按下click
时,所以myId
的html内容发生了变化,现在我想触发另一个动作console.log("myalert")
。< / p>
<html>
<body>
<input type="button" id="buttonid" value="click">
<div id = "myId">
</div>
</body>
<script>
var button = document.getElementById("buttonid");
button.addEventListener("click", function () {
console.log("alert");
document.getElementById('myId').innerHTML = '<input type="button" id="button3" value="click2">'
});
var button2 = document.getElementById("myId");
button2.addEventListener("change", function () {
console.log("myalert");
});
</script>
</html>
我如何达到我的要求?
注意:我不想使用jQuery
。
答案 0 :(得分:0)
没有真正的事件。但是,您可以通过侦听间隔循环中的更改来解决此问题。我不会真的推荐它,但是我不能决定你到底使用了什么。这将是:
var myIdContent = document.getElementById('myId').innerHTML;
setInterval(function(){
if(myIdContent !== document.getElementById('myId').innerHTML){
myIdContent = document.getElementById('myId').innerHTML;
// Element has changed, do some modifications here
}
}, 1000); // Lower number for shorter intervals
然而,当div的内容增长时,这可能变得非常慢。更好的方法是在从javascript更改html时调用事件或“更改”函数。您需要编写更多内容,还可以更好地控制何时发生更改事件。
对不涉及比较内容的答案提问: Detect changes in the DOM