在下面的代码中,注释掉的行: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
的部分。属性更容易;)
关于javascript - .split() 破坏代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18216211/