javascript - .split() 破坏代码

标签 javascript jquery

在下面的代码中,注释掉的行: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从它的风格来检查它是否是blocknone , 不要使用 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/

相关文章:

javascript - Backbone Collection.reset() 不适用于扩展集合

javascript - 加载并访问加载时的所有图像

javascript - 计算返回 NaN

javascript - 我想在按下“提交”按钮后在 iframe 中的 index.html 上加载 get.php 文件

javascript - 在 Angular js 中创建一个简单的服务

javascript - promise 不等待解决

javascript - 更改 .text() 内容并保留子 html

javascript - 未捕获的 TypeError : $(. ..).children(...)[0].css 不是函数

javascript - Chrome远程接口(interface): How to Wait Until a New Page Loads

javascript - 如何使用 HTML5 在标题中添加文本