当此跨度值发生变化时,如何触发事件?

时间:2015-08-17 15:24:56

标签: javascript jquery html5 google-finance

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

页: https://www.google.com/finance?q=NASDAQ%3AGOOG&ei=yvbRVbHSCcKgmAGyu7CoDA

元素ID: #price-panel> div> 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”,这对谷歌搜索来说是不明确的,所以这没什么用。

我可以观察哪些事件可以找出这个元素何时发生变化?

2 个答案:

答案 0 :(得分:4)

span个元素没有onchange个事件。您可以做的一件事是引入一个循环来定期检查当前内容以及之前保存的内容,如果两者不同,则执行一些操作:

var content = null,
    $element = $("#price-panel div span span");

setInterval(function() {
    var currentText = $element.text();

    if (currentText != content) {
        // A change has happened
        console.log("Change");
        content = currentText;
    }
}, 30000 /* check every 30 seconds */);

答案 1 :(得分:3)

<span>尝试收听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);中的文字更改时,Dom Events可以使用DOMCharacterDataModified

或者您可以使用MutationObserver来捕获更改。

&#13;
&#13;
<span id="test">This is a span</span>
&#13;
library(dplyr)
library(reshape2) 
library(tidyr)

DT %>%
  mutate(id = 1:n()) %>% 
  melt(id.vars = c('id')) %>% 
  mutate(Group = substr(variable, 1, 3)) %>% 
  group_by(id, Group) %>% 
  summarise(tot = sum(value)) %>% 
  spread(Group, tot) %>% 
  select(-id)
&#13;
&#13;
&#13;

相关问题