Как улучшение этой линии jquery

Добрый вечер, у меня есть эта линия кода, функционируй верно, но мне хотелось бы знать, есть ли какой-то способ перемещать все .parent какой-то формы

$(this).parent().parent().parent().parent().find("input").val($(this).text());
2
задан 19.09.2016, 22:58
3 ответа

Имея ▼:

$(this).parent().parent().parent().parent().find("input").val($(this).text());

Прогресс был бы ▼:

$(this).parents().eq(3).find("input").val($(this).text());

См. .parents() и .eq() для большей информации.

2
ответ дан 24.11.2019, 13:21
  • 1
    тысячи спасибо, функционируй совершенно, я прочитал ссылки, которые ты поместил спасибо снова. –  Angelo cardona 20.09.2016, 18:36

Используй closest() в сочетании с тип элемента или класса, который ты хотел бы выбрать. closest тебе возвратит первый элемент предок, который выполнит условие селектора.

Пример, поскольку оно функционирует:

$("span").on("click", function() {

  $(this).closest("table").find("input").val( $(this).text() );
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<table>
  <tr>
    <td>
      <div>
        <span>Pulsa aquí</span>
      </div>
    </td>
    <td>
      <div>
        <span>No, mejor aquí</span>
      </div>
    </td>
  </tr>
  <tr>
    <td colspan="2">
      <div>
        <input type="text" />
      </div>
    </td>
  </tr>
</table>
4
ответ дан 24.11.2019, 13:21

Ты можешь использовать .parents() jQuery.

оставил тебе пример

$(document).ready(function(){
  $("span").css({"color": "red", "border": "2px solid red"});//elemento this
  $("span").parents("ul").css({"color": "red", "border": "2px solid red"});
});
body * {
    display: block;
    border: 2px solid lightgrey;
    color: lightgrey;
    padding: 5px;
    margin: 15px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="width:500px;">div (great-grandparent)
  <ul>ul (grandparent)
    <li>li (direct parent)
      <span>Elemento this</span>
    </li>
  </ul>
</div>
0
ответ дан 24.11.2019, 13:21