JQuery - 按类获取父级的父级

Lee*_*Lee 2 html css jquery

我有一个<textarea>内部的<div>,其包含在另一个<div>.的<textarea>具有予可以引用的ID,但是既没有的<div>的具有ID的.然而,他们总是有一个集合类.在同一页面上可以有多个这些,只有<textarea>ID是唯一的:

<div class = "grandparent">
  <div class = "parent">
    <textarea id = "id_1"></textarea>
  </div>
</div>

<div class = "grandparent">
  <div class = "parent">
    <textarea id = "id_2"></textarea>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我无法改变这种结构.我可以<div>通过JQuery 为祖父母设计风格吗?

编辑:为了澄清,我只想为特定的祖父母设计风格 <textarea>

Sat*_*ish 9

你可以使用nearest(),它将从DOM树中选择与选择器匹配的第一个元素.

$( "#id_1" ).closest('.grandparent').css( "background-color", "red" );
Run Code Online (Sandbox Code Playgroud)

DEMO

  • 在我看来更好的答案 (4认同)

Osc*_*out 8

来源:https://api.jquery.com/parent/

所以它应该是:

$( "#id_1" ).parent().parent().css( "background-color", "red" );
Run Code Online (Sandbox Code Playgroud)

  • @Lee` .closest()`是更好的选择,因为你不必遍历两次而`.parent()`有点慢,所以要注意标记是否很长而+1是奥斯卡. (3认同)