我正在尝试在当前页面的股票价格发生变化时获取控制台日志。
页面: https://www.google.com/finance?q=NASDAQ%3AGOOG&ei=yvbRVbHSCcKgmAGyu7CoDA
元素 ID: #price-panel > div > span > span
尝试 1:失败
$("#price-panel div span span").onchange = function() { console.log('change')}
尝试 2:失败
document.getElementById('price-panel').children[0].children[0].onchange = function() { console.log('change')}
builtwith.com 说 javascript 是“google api”,它对 google 搜索有歧义,因此没有太大帮助。
我可以通过观察什么事件来了解该元素何时发生变化?
最佳答案
来自 Dom Events当您尝试收听 <span>
中的文本更改时你可以使用 DOMCharacterDataModified .
或者您可以使用 MutationObserver捕捉变化。
var span = document.querySelector('#test');
var text = document.createTextNode('tttt');
// This may be deprecated.
span.addEventListener('DOMCharacterDataModified', function() {
alert('span text changed to: ' + this.innerHTML);
});
// You may use MutationObserver instead.
var mutateObserver = new MutationObserver(function(records) {
console.log(records);
});
mutateObserver.observe(span, {
childList: true, // capture child add/remove on target element.
characterData: true, // capture text changes on target element
subtree: true, // capture childs changes too
characterDataOldValue: true // keep of prev value
});
setTimeout(function() {
span.innerHTML ='SSSS';
}, 2000);
setTimeout(function() {
span.appendChild(text);
}, 3000);
setTimeout(function() {
text.data = '3123';
}, 4000);
<span id="test">This is a span</span>
关于javascript - 当此跨度值更改时,如何触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054115/