我想在有人单击添加图像时插入一个对象 ($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/