在下一个同级中找到具有给定类的最近跨度元素

时间:2018-08-01 16:37:05

标签: jquery selector children

我有一个textarea元素,如下所示:

<textarea class="additional contactNameInput" id="additional1" name="additional1" placeholder="Additional requests..."></textarea>

然后我有了HTML,如下所示:

<div>
  <p>Intro</p>
  <p>Additional text: <span class="addedText"></span></p>
<div>

我希望使用textarea中添加的文本来完成跨度。但是,由于我重复了很多这样的事情,因此我需要使用兄弟姐妹/父母/孩子作为目标。我写了以下内容:

$(".additional1").keyup(function() {
  $(this).siblings('div:first').nextAll('.addedText').html($("#additional1").val());
});

但这不起作用。当我删除.nextAll('addedText')时,它确实起作用了,但是显然替换了整个div。如何使用类addedText定位此span元素。

此外,我将需要替换#additional1',以便对于此文档中的每个元素,都选择要使用的特定textarea的内容。

我已经使用不同的组合玩了几个小时,而且似乎无法正确选择选择器。

1 个答案:

答案 0 :(得分:1)

仅需要一些小调整:

$(".additional").keyup(function() {
  $(this).next('div').find('.addedText').html($(this).val());
});

<textarea class="additional contactNameInput" id="additional1" ....
  • 将选择器更改为类.additional
  • 使用.next("div")获取下一个div
  • 使用.find(".addedText")查找该div的子项
  • 使用$(this).val()从活动textarea中获取文本