javascript - 当此跨度值更改时,如何触发事件?

标签 javascript jquery html google-finance

我正在尝试在当前页面的股票价格发生变化时获取控制台日志。

页面: 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/

相关文章:

javascript - 错误 [ERR_REQUIRE_ESM] : require() of ES Module while using SSR (Inertiajs)

javascript - 更新 select2 组件的选项 - vue js

jquery - 使用 $.when() 等待一切执行甚至失败

jquery - Spring MVC JQuery 的问题

c# - 跨页播放的音乐播放器

html - IE8 中可用的 D3 替换(带有 D3 和 svg 的图表)

javascript - str replace 在没有收到正确数量的参数时表现得很有趣

相当于 JavaScript 的 String.match() 的 Java

jQuery,具有固定高度和最小可能宽度的div

php - 使用 jQuery 对话框显示 mysql_error 消息