在下面的代码中,注释掉的行: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>');
});
答案 0 :(得分:5)
您的问题归因于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
属性的部分;)