首页 > 解决方案 > JS在生成的ajax div中添加文本

问题描述

寻求一些帮助,如何将自定义文本值添加到 Ajax 生成的输入文本字段。但无法通过 id 或 class 获取元素,所有代码都不起作用。尝试了检查规则价格是否为空的代码,然后它应该向字段添加文本,但它不起作用。

<script type="text/javascript">
        if($("#_regular_price").length > 0) { 
            $("#snippet-editor-field-description").text('labas')
        };
</script>

也尝试了此代码以检查是否甚至可以使用警报,但事实并非如此。

<script type="text/javascript">

    $('#snippet-editor-field-description').click( function() { 
        alert('clicked'); 
    });

</script>

任何人都可以在摘录之前帮助如何获取元素并添加自定义文本,其中标记为黄色?

在此处输入图像描述

标签: javascriptjqueryajaxadd

解决方案


我能看到的最大问题是您的 jQuery 代码在 DOM 初始化时运行,但是如果您正在寻找的元素 ( #snippet-editor-field-description) 不在初始页面加载中,它将永远找不到它,因为 jQuery 只是解析 DOM一次。

要处理这个 jQuery 使用.on()方法,它将动态查找添加到 DOM 的任何新元素,以匹配该选择器......

<script type="text/javascript">

    $(document).on('click','#snippet-editor-field-description', function() { 
        alert('clicked'); 
    });

</script>


至于在将此元素添加到 DOM 时做某事,不幸的是 jQuery 弃用了该功能(jquery 检测某些类的 div 已添加到 DOM 中 ),因此您可以手动实现,如链接的 SO 问题中所示或...

  1. 轮询元素的存在

setInterval(function (){
        var elem = $("#snippet-editor-field-description");
        if (elem) elem.append('labas');
},1000)

  1. 使用插件(在这种情况下推荐)

jQuery 初始化

$("#snippet-editor-field-description").initialize(function (){
   $(this).append('labas');
});


推荐阅读