javascript - jquery 无法获取元素的类名

标签 javascript jquery jquery-selectors

我有以下代码,但由于某种原因 jQuery 没有选择元素类名称,我知道如果元素有多个类,则调用 .attr('class') 将不会返回它们,但 .hasClass('class-name') 应该能够识别元素是否具有类名。
我的问题是 jquery 返回类名未定义(我从注释行中得到了这个。)。 如何使 #parent 的所有其他 div 子级(没有类 the-one)具有黄色背景。

$(document).ready(function()
{
  var j = $('#parent> div').size();
  for(var i =0;i<j;i++)
    {
      //alert($('#parent> div').children().eq(i).attr('class')); 
      if(!$('#parent> div').children().eq(i).hasClass('the-one'))
        {
          $('#parent> div').children().eq(i).css('background','yellow')
        }
    }
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id = "parent">
  <div class = "one the-one">one</div>
  <div class = "two">two</div>
  <div class = "three">Three</div>
  <div class = "four">Four</div>
</div>

最佳答案

children() 调用是多余的,因为所有 div 元素都没有任何子元素。删除它,代码就可以工作了:

$(document).ready(function() {
  var j = $('#parent> div').size();
  for (var i = 0; i < j; i++) {
    //alert($('#parent> div').eq(i).attr('class')); 
    if (!$('#parent> div').eq(i).hasClass('the-one')) {
      $('#parent> div').eq(i).css('background', 'yellow')
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="parent">
  <div class="one the-one">one</div>
  <div class="two">two</div>
  <div class="three">Three</div>
  <div class="four">Four</div>
</div>

另请注意,您可以使用 each()this 关键字来整理 JS 中的逻辑,以引用循环中的元素:

$('#parent > div').each(function() {
    if ($(this).hasClass('the-one'))
        $(this).css('background', 'yellow')
});

关于javascript - jquery 无法获取元素的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888710/

相关文章:

javascript - 类型错误 : Cannot read property 'latlng' of undefined

javascript - 仅当单击外部 li 时才触发事件

javascript - Jquery - 首次使用后初始化选择框

javascript - 获取 jQuery 对 HTML 元素执行的操作的详细信息

javascript - 定位多个相似项目组中的事件

javascript - 仅选择与选择器匹配的父节点

javascript - 如何通过节点 ID 取消选择 jsTree 复选框

javascript - 弹出框未显示

javascript - 在 ajax 调用中传递 php 值

javascript - 如何循环遍历 SVG 中的路径元素?