1

我想用javascript对TD中的内容进行操作,当TD内容发生变化时,我会做其他事情。但似乎永远不会引发变更事件。的HTML:

<table><tr><td id='testTD'>Test</td></tr></table>

的JavaScript:

  jQuery().ready(function(){
    jQuery('#testTD').on('change', function(e){alert('td changed');});
    jQuery('#testTD').append('something'); //why this did not raise the 'change' event for td?
  });

任何想法?

4

2 回答 2

1

当元素的值改变时,change 事件被发送到元素。此事件仅限于 <input>元素、<textarea>框和<select>元素。

来源: http ://api.jquery.com/change/

如果您想对其他元素进行更改,只需调用.change()

jQuery('#testTD').append('something').change();
于 2013-10-24T09:22:17.740 回答
0

你在这里走错了方向。更改事件不会在 DOM 内容更改时触发 - 它们会在下拉列表、复选框和单选按钮的值或状态更改时触发。

有一些非标准(并且与浏览器非常不一致)事件来检测所谓的内容突变,但正如我所说,它们是不可靠的。

而是考虑一种不同的方法。您可以使用自定义事件并在更改 TD 的内容时触发它,而不是尝试直接侦听内容更改。

于 2013-10-24T09:22:50.457 回答