在下面的代码中,被注释掉的行: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>');
});

最佳答案

您的问题是由于displayWholeundefined

如果要从元素的样式中获取元素的display以检查它是block还是none,请不要使用attr,请使用css。像这样:

var displayWhole = $(this).css('display');


.attr()函数将为您获取HTML元素的属性。但是display不是HTML属性。它始终是style属性的一部分。您曾经使用过:

var displayWhole = $(this).attr('style');


然后,您将整个style作为字符串进行操作。

另一方面,存在.css() jQuery函数,因此您可以更轻松地获取style属性的各个部分;)

09-25 15:12