我有这个函数是用jQuery编写的,并为选定的元素创建一个div。jQuery函数创建div,在JavaScript中不能正常工作
var createPlaceholder = function createPlaceholder(height) {
return $('<div></div>').css({
height: height + 'px',
marginTop: (currentIndex > 0 ? -marginTop : -1) + 'px'
})
.addClass('placeholder');
};
然后叫这样的:
placeholderHeight = dragging.outerHeight() + marginTop;
placeholder = createPlaceholder(placeholderHeight);
placeholder.insertAfter(dragging);
现在纯JS的东西!我试图做同样的事情,但没有jQuery,但我总是得到未定义的错误和父母的问题。这是我做了什么至今:
var createPlaceholder = function createPlaceholder(height) {
var div = document.createElement('div');
div.style.height = height + 'px';
div.style.marginTop = (currentIndex > 0 ? -marginTop : -1) + 'px';
div.setAttribute('class', 'placeholder');
document.body.appendChild(div);
};
placeholderHeight = dragging.outerHeight() + marginTop;
placeholder = createPlaceholder(placeholderHeight);
placeholder.parentNode.insertBefore(placeholder,dragging.nextSibling);
试过这样:
placeholderHeight = dragging.outerHeight() + marginTop;
var div = document.createElement('div');
div.style.height = placeholderHeight + 'px';
div.style.marginTop = (currentIndex > 0 ? -marginTop : -1) + 'px';
div.setAttribute('class', 'placeholder');
div.parentNode.insertBefore(div, dragging[0].nextSibling);
我得到这个错误:类型错误:无法读取空的特性“的insertBefore”
我在做什么错误? :/
你得到的错误是什么? – 2015-03-31 15:16:53
我得到:无法读取最后一行未定义的属性'parentNode'“placeholder.parentNode.insertBefore(placeholder,dragging.nextSibling);” – Jack 2015-03-31 15:20:53
你的'createPlaceholder'函数没有返回任何东西。 – 2015-03-31 15:21:23