我正在使用jQuery ,我span1
想在一个 span(称为 span1
我如何处理跨度的文本更改?
问问题
144813 次
3 回答
31
Span 默认没有 'change' 事件。但是您可以手动添加此事件。
监听 span 的 change 事件。
$("#span1").on('change',function(){
//Do calculation and change value of other span2,span3 here
$("#span2").text('calculated value');
});
无论您在哪里更改 span1 中的文本。手动触发更改事件。
$("#span1").text('test').trigger('change');
于 2013-05-23T12:55:17.470 回答
16
您可以使用更改 span1 文本的函数来更改其他文本。
作为一种解决方法,如果您真的希望它有一个change
事件,那么不要将文本分配给 span 1。而是在 jQuery 中分配一个输入变量,向它写入一个更改事件,无论您更改 span1 的文本。而是更改输入变量的值,从而触发更改事件,如下所示:
var spanChange = $("<input />");
function someFuncToCalculateAndSetTextForSpan1() {
// do work
spanChange.val($newText).change();
};
$(function() {
spanChange.change(function(e) {
var $val = $(this).val(),
$newVal = some*calc-$val;
$("#span1").text($val);
$("#spanWhatever").text($newVal);
});
});
虽然我真的觉得这种“变通方法”虽然在创建简单更改事件的某些方面很有用,但非常过度扩展,您最好在更改 span1 的同时对其他跨度进行更改。
于 2012-06-09T05:22:19.693 回答
5
在这里找到了解决方案
假设您有 span1,因为<span id='span1'>my text</span>
可以通过以下方式捕获文本更改事件:
$(document).ready(function(){
$("#span1").on('DOMSubtreeModified',function(){
// text change handler
});
});
于 2020-07-20T09:12:13.140 回答