【发布时间】:2015-11-21 05:36:58
【问题描述】:
我想检查我的元素宽度是否大于 100% - 所以如果 div 是 113.42% 隐藏其他东西,但我无法让它隐藏元素。
现在,我有这个设置来测试,如果宽度大于 100%,则将背景设为黑色,否则将背景设为红色。现在,元素是红色的,但大于 100% 的元素不会变黑。有人可以指出我做错了什么吗?它还对我想用.display-area 在每个元素上检测的所有元素执行此操作-我是否必须使用.each 函数?
var $displayarea = $(".display-area");
var width = $('.display-area').width();
var parentWidth = $('.display-area').offsetParent().width();
var percent = 100*width/parentWidth;
// var per = $('.first-div').width() * .80;
// if ( $displayarea.width() > "100%" ) {
if ($displayarea.css("width") > percent ) {
$displayarea.css({
background: 'black'
});
} else {
$displayarea.css({
background: 'red'
});
}
【问题讨论】:
-
你检查过你正在做的比较的值吗? css("width") 将返回一个带有单位的字符串,即 IE。 "10px" 而 .width() 没有。可能是你在做 if("10px" > 10) 总是返回 false。
-
第二部分 - 是的,您需要使用
.each,因为$displayarea是所有.display-areadiv 的集合。因此,当您设置$displayarea.css ...时,您将在每个.display-area上设置该css 样式。 -
我该怎么写? @samuelmr
-
@Bryan,如果您使用的是 Chrome,则内置了一个出色的 javascript 调试器。F12 键将打开它,您可以在源选项卡中找到您的 javascript,从这里您可以单击左侧有侧栏将放置一个断点。运行代码时,您可以将鼠标悬停在每个变量上以提供有关它的更多信息。
-
我要做的就是检查元素是否具有更大的 100% 宽度。这不能回答问题。你能帮我指出正确的方向吗? @samuelmr
标签: javascript jquery html css