jQuery 对象根本不前置

标签 jquery html prepend

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

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

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

<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>

最佳答案

您无法将内容插入 <img>标签(这就是 prepend() 正在尝试做的事情)。

使用 before() 相反。

关于jQuery 对象根本不前置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090222/

相关文章:

javascript - 在 detach 和 appendTo 元素被复制之后

javascript - 知道何时在 jQuery UI 中触发位置碰撞

javascript - 没有附加到 DOM 的视频应该自动播放吗?

php - Apache:mod_rewrite 不指向一个地址

c++ - 动态数组的实现是否在开始时预留空间用于前置?

javascript - 有多个具有相同属性(类、类型、值等)的按钮,它们在调用时可以 "point out"其父 DIV?

javascript - 如何从javascript中的输入文件读取文本?

html - 图像对齐 HTML CSS

javascript - 如何在不重复的情况下附加或预先添加要在一页上多次使用的 div 文本?

list - Kotlin 前置元素