【问题标题】:Find Div after specific element在特定元素后查找 Div
【发布时间】:2018-02-07 09:38:16
【问题描述】:

我能够使用 .class textimage-text 获取元素内的所有 HTML。这工作正常。然后我需要在下面的 Div 中获取 html,它没有 id 或 Class..

例子

<div class="textimage-text">
  <p>Some Text goes here</p>
</div>
<br>
<div>
  <p>Some additional Text goes here</p>
</div>

$.get(item.url, function (html) {

  var body = $(html).find(".textimage-text").html(); // <- this works
  var more= $(html).find(".textimage-text").next("div").html(); // <- this does not work

【问题讨论】:

  • 我认为它们中的任何一个都不会起作用,因为html 是来自$.get 的响应。所以cn你告诉html的价值是什么?
  • var 正文行绝对有效。
  • html 的值是多少?你能告诉我吗?在$.get 里面做console.log(html); 告诉我

标签: jquery element next


【解决方案1】:

使用通用同级选择器~(例如:~ div 查找与此同级的下一个 div)

$(html).find(".textimage-text ~ div").html();

$('.textimage-text ~ div').html()

通用兄弟选择器

通用兄弟组合符 (~) 分隔两个选择器,并且仅当第二个元素跟在第一个元素之后(尽管不一定立即)匹配第二个元素,并且它们都是同一个父元素的子元素。

例子:

console.log($('body').find('.textimage-text').html());
console.log($('body').find('.textimage-text ~ div').html());

console.log($('.textimage-text').html());
console.log($('.textimage-text ~ div').html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="textimage-text">
  <p>Some Text goes here</p>
</div>
<br>
<div>
  <p>Some additional Text goes here</p>
</div>

【讨论】:

    【解决方案2】:

    添加一个额外的 .next() 并删除下一个函数中的 "div" 参数,目前您正在选择 br

    var more= $(html).find(".textimage-text").next().next().html()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 2021-07-26
      • 1970-01-01
      • 2016-06-17
      相关资源
      最近更新 更多