jQuery appendTo 父级麻烦
jQuery appendTo Parent Trouble
首先,感谢您的提前帮助。
我基本上是想在页面上找到的每个锚标记上方放置一个悬停 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 is not a function
Any thoughts on what may be happening here?
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
});
尝试使用 append()
,因为 tempoverlay
不是 jquery 对象,您不能在 [=18] 上调用 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);
});
希望对您有所帮助。
tempoverlay
不是 jQuery 元素。这是一个 dom 元素。
试试这个:$(tempoverlay).appendTo...
首先,感谢您的提前帮助。
我基本上是想在页面上找到的每个锚标记上方放置一个悬停 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 is not a function Any thoughts on what may be happening here?
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
});
尝试使用 append()
,因为 tempoverlay
不是 jquery 对象,您不能在 [=18] 上调用 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);
});
希望对您有所帮助。
tempoverlay
不是 jQuery 元素。这是一个 dom 元素。
试试这个:$(tempoverlay).appendTo...