jQuery将文本添加到尚未加载的元素

时间:2016-04-12 11:50:15

标签: jquery load addclass

仅针对上下文,这种情况发生在我的WordPress管理区域,但它并不是特定于WP的。

我有一个链接,当点击它时,会创建一个带有少量子元素的新DOM元素。我正在尝试为这个新元素添加一个类名,如下所示:

<script type="text/javascript">         
    jQuery(document).ready( function($) {                 
        $('tr#post-65 span.inline a.editinline').click(function() {
            $('tr#edit-65').addClass('someclass');
        });
    }); 
</script>

所以tr#post-65始终存在但表格行edit-65仅在点击a.editinline时存在。但是,上面我的jQuery tr#edit-65 没有创建,而是WP自己的jQuery代码,我无法访问。

所以,我的问题是,如何在我自己的jQuery块加载后创建的元素中添加一个类?是否可以检测元素edit-65何时成功加载/创建,添加我的自定义类?

2 个答案:

答案 0 :(得分:1)

创建一个间隔以定期检查元素的存在。并在完成时清除间隔:

<script type="text/javascript">         
    jQuery(document).ready( function($) {                 
        $('tr#post-65 span.inline a.editinline').click(function() {
            var int = setInterval(function(){
                   if($('tr#edit-65').length>0)
                       {$('tr#edit-65').addClass('someclass');
                        clearInterval(int);
                       }
             }, 100);

        });
    }); 
</script>

答案 1 :(得分:1)

试试这个:由于你无法控制元素的创建,你可以使用setInterval来解决是否创建了元素然后设置了class并退出。

     /**
     * @OneToMany(targetEntity="AppBundle\Entity\UserDataAttribute", mappedBy="user", cascade={"persist", "remove"})
     */
    private $customAttributes;


     /**
     * @ManyToOne(targetEntity="AppBundle\Entity\User", inversedBy="customAttributes")
     */
    private $user;

<强> More Information on setInterval()