jQuery 对象根本不前置

Posted

技术标签:

【中文标题】jQuery 对象根本不前置【英文标题】:jQuery object doesn't prepend at all 【发布时间】:2012-02-01 03:11:10 【问题描述】:

当有人单击添加图像时,我想插入一个对象 ($roleOption)。 else 条件工作正常,完全符合我的要求。

但第一个条件(“如果没有选项,则直接插入图像之前”)根本不起作用。不会触发任何错误,它只是不会添加对象。

我是否错误地使用了 prepend 方法?

<script language="javascript" type="text/javascript">
    $(document).ready(function () 
        var $roleOption = "<div class='roleoption'><img src='@Url.Content("~/Public/images/delete.png")' alt='delete' />@html.Raw(@DSS.WebUI.Helpers.CustomHelpers.SelectListItemsForRoleJavascript(Model.ExistingRoles, 1))</div>";

        $('img.add-role').click(function() 
            if ($(this).siblings('.roleoption').length == 0) 

                //Displaying zero as expected. So it's entering this conditional.
                console.log($(this).siblings('.roleoption').length); 
                $(this).prepend($roleOption); //However the element isn't being prepended. :/
            
            else 
                $($roleOption).insertAfter($(this).parent().find('.roleoption:last')); //This works as expected.
            
        );
    );
</script>

【问题讨论】:

【参考方案1】:

您不能将内容插入&lt;img&gt; 标记(这是prepend() 试图做的)。

请改用before()

【讨论】:

啊,我明白了,文档让我相信 prepend 会在“this”之前添加元素。意思是在图像之前,而不是在图像内部。谢谢这解决了我的问题。

以上是关于jQuery 对象根本不前置的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 前置图像

jQuery。前置淡入(错误)

jQuery:使用延迟()和前置()

在 Jquery 中切换时如何更改前置文本?

jQuery document.ready 没有前置

可以为 jQuery 前置动画吗?