通过JS检查宽度元素

Check width element by JS

我正在处理 HTML 和 CSS 的下拉菜单。我在检查子菜单的宽度时遇到问题。 我有一个菜单 like this

当我们指向元素时,它会显示下拉菜单like this or like this

子菜单为动态菜单。它具有相同的样式,相同的 css 名称,但取决于数据,因此子菜单可小可大。 所以我想检查子菜单的宽度,如果有任何子菜单的宽度大于 200px -> 在子菜单中再添加一个 css class (其他 < 200px,不得添加)

我的想法是使用 JS 来检查子菜单元素的宽度。但我是新手。我试过

<script>
  if ($('.sub-dropdown').width() > 200) {
       $('.sub-dropdown').addClass('float-right');
  }
</script>

但是当然,它添加到所有子菜单,即使它们小于 200px :(

任何人都可以解决这个问题吗?请给我一个解决方案。

非常感谢。

我会告诉你为什么你的所有子下拉列表都会有 class float-rigth。 只有当你的一个子下拉框的宽度大于200时,你的if判断才会为真,所以代码进入$('.sub-dropdown').addClass('float-right');。这段代码将添加你所有的框class float-right 哪个框的 class 是子下拉列表。

您应该像这样更改您的代码

$('.sub-dropdown').each(function(index,ele){
    if($(ele).width()>200){
        $(ele).addClass('float-right');
    }
});