jquery 如何处理span的更改文本

xytpbqjk  于 2023-06-22  发布在  jQuery
关注(0)|答案(4)|浏览(314)

我正在使用jQuery,我想在一个span(称为span1)中显示一些计算,我想当span1的文本改变时,对它的值进行一些计算,并在其他span(称为`span2,span3,...)中显示。如何处理span的文本更改?

ngynwnxp

ngynwnxp1#

默认情况下,Span没有“change”事件。但您可以手动添加此事件。
听一下span的变化事件。

$("#span1").on('change',function(){
     //Do calculation and change value of other span2,span3 here
     $("#span2").text('calculated value');
});

以及在span1中更改文本的位置。手动触发更改事件。

$("#span1").text('test').trigger('change');
gab6jxml

gab6jxml2#

您可以使用更改span1的文本的函数来更改其他文件的文本。
作为一种变通方法,如果您真的希望它包含change事件,则不要将文本分配给span 1。相反,在jQuery中指定一个输入变量,向其写入一个change事件,并且无论你在何处更改span1的文本。而是更改输入变量的值,从而触发change事件,如下所示:

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的同时对其他span进行更改。

wribegjk

wribegjk3#

找到解here
假设您将span1设置为<span id='span1'>my text</span>
文本更改事件可以通过以下方式捕获:

$(document).ready(function(){
    $("#span1").on('DOMSubtreeModified',function(){
         // text change handler
     });

 });
5jdjgkvh

5jdjgkvh4#

如果你想让函数在html上改变,你必须尝试这个

$("body").on('DOMSubtreeModified', ".showtotal", function() {
     
     console.warn('Content of the span changed.......');
     
 });

或者你也可以试试这个

var targetSpan = $('.class');
 var observer = new MutationObserver(function(mutations) {
 console.log('Content of the span changed');
});
// Configure and start observing the target element for changes in child nodes
 var config = { childList: true, subtree: true };
 observer.observe(targetSpan[0], config);

相关问题