在下面的代码中,被注释掉的行:var displayPieces = displayWhole.split(" ");
中断.subMenuContent区域中发生的情况。如果我只注释掉那条线,那很好。有任何想法吗?
$(".subMenuHeader").each(function() {
var displayWhole = $(this).attr('display');
//var displayPieces = displayWhole.split(" ");
});
$(".subMenuContent").each(function() {
$(this).prepend('<div class="subMenuShineLeft"></div>' +
'<div class="subMenuShineRight"></div>');
});
最佳答案
您的问题是由于displayWhole
是undefined
。
如果要从元素的样式中获取元素的display
以检查它是block
还是none
,请不要使用attr
,请使用css
。像这样:
var displayWhole = $(this).css('display');
.attr()
函数将为您获取HTML元素的属性。但是display
不是HTML属性。它始终是style
属性的一部分。您曾经使用过:var displayWhole = $(this).attr('style');
然后,您将整个
style
作为字符串进行操作。另一方面,存在
.css()
jQuery函数,因此您可以更轻松地获取style
属性的各个部分;)