哪个类更接近jquery中的元素A或B.

chr*_*riz 4 html jquery class

<div class='red'>
  <span class='orange'>
    <div class='green'>
      <div class="yellow">
         <p>who is closer to me red or green??</p>
      </div>
    </div>
  </span>
</div>
Run Code Online (Sandbox Code Playgroud)

上面是我的html,i want to compare green or red which one is closer to <p>在jquery中,我试过了

  $(this).parents().hasClass("red");
Run Code Online (Sandbox Code Playgroud)

但那对我不起作用..帮帮我..

Tus*_*har 5

Fiddle Demo

单程 :)

$('p').click(function () {
    var cls = $(this).parents('div').filter(function () { //filter all div parents
        return $(this).is('.green, .red'); //filter element who have class green or red
    }).attr('class'); //get the attr of the first matched element 
    alert(cls);
});
Run Code Online (Sandbox Code Playgroud)


获取元素检查控制台日志

Fiddle Demo


评论后更新

Updated Fiddle Demo

$('p').click(function () {
    var cls = $(this).parents('div').filter(function () { //filter all div parents
        return $(this).is('.green, .red'); //filter element who have class green or red
    }).attr('class'); //get the attr of the first matched element 
    alert(cls.match(/(green|red)\s?/i)[0] + ' is closer.');
});
Run Code Online (Sandbox Code Playgroud)

  • 他问哪个更接近红色或绿色.如果与其中一个类最接近的元素具有许多其他类,该怎么办?那么你的算法将拥有包含所有类的整个类名,而不仅仅是"红色"或"绿色".TH OP没有要求这个元素.他们问哪种颜色更接近.这是我的观点.您的答案需要更多代码来检查生成的类名,以查看它包含哪个类,以了解哪一个更接近. (2认同)