JS在生成的Ajax div中添加文本

时间:2019-02-17 20:48:09

标签: javascript jquery ajax add

寻找一些帮助,如何将自定义文本值添加到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>

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

enter image description here

1 个答案:

答案 0 :(得分:2)

我能看到的最大问题是,初始化DOM时将运行jQuery代码,但是如果您要查找的元素(#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 detecting div of certain class has been added to DOM ),因此您可以手动实现,如链接的SO问题所示,或者...

  1. 对元素存在的投票

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

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

jQuery Initialize

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