首先,感谢您的帮助。
我试图基本上对我在页面上找到的每个锚标记进行悬停div
。所以我得到偏移量,找到每个元素的高度和宽度,然后创建一个新的div并将CSS设置为那些测量值。我在将新创建的DIV附加到锚标记的父代码时遇到问题。
$( "a" ).each(function( index ) {
tempoffset = $( this ).offset();
tempheight = $( this ).height();
tempwidth = $( this ).width();
tempoverlay = document.createElement('div');
tempoverlay.appendTo($(this).parent());
tempoverlay.setAttribute("style","background: #ccc; position: fixed; height: " + tempheight + "px; width: " + tempwidth + "px; left: " + tempoffset.left + "px; top: " + tempoffset.top + "px;");
});
我收到的错误是
tempoverlay.appendTo不是一个函数 对这里可能发生的事情的任何想法?
答案 0 :(得分:2)
tempoverlay
是一个本机DOM节点,而不是jQuery对象,因为它是document.createElement
创建的,因此它没有appendTo
方法。
改为创建jQuery对象
var tempoverlay = $('<div />');
tempoverlay.appendTo( $(this).parent() )
.css({
background : '#ccc',
position : 'fixed',
height : tempheigh,
width : tempwidth,
left : tempoffset.left,
top : tempoffset.top
});
答案 1 :(得分:0)
尝试使用append()
,因为tempoverlay
不是jquery对象,你不能在dom节点上调用jquery函数.appendTo
:
$( "a" ).each(function( index ) {
tempoffset = $( this ).offset();
tempheight = $( this ).height();
tempwidth = $( this ).width();
tempoverlay = document.createElement('div');
tempoverlay.setAttribute("style","background: #ccc; position: fixed; height: " + tempheight + "px; width: " + tempwidth + "px; left: " + tempoffset.left + "px; top: " + tempoffset.top + "px;");
$(this).parent().append(tempoverlay);
});
希望这有帮助。
答案 2 :(得分:0)
tempoverlay
不是jQuery元素。它是一个dom元素。
试试这个:$(tempoverlay).appendTo...