Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:从当前元素中查找prev元素_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:从当前元素中查找prev元素

Javascript jQuery:从当前元素中查找prev元素,javascript,jquery,Javascript,Jquery,如何像这样从当前元素中获取prev元素 <p class='target'>Target</p> <ol> <li>start</li> <ul> <li class='start'>mid</li> </ul> </ol> 但是它没有得到目标 我该怎么做?有什么建议吗 更新:: 我的情况有点复杂 <p> <ins>asd

如何像这样从当前元素中获取prev元素

<p class='target'>Target</p>

<ol>
  <li>start</li>
  <ul>
    <li class='start'>mid</li>
  </ul>
</ol>
但是它没有得到目标

我该怎么做?有什么建议吗

更新::

我的情况有点复杂

  <p>
  <ins>asdf</ins>
  </p>

<div>div (great-grandparent)
  <ul> 
     <li><del>(second ancestor - second grandparent)</del></li>   
     <ul>
       <li>
         <span>span</span>
       </li>
     </ul>
   </ul>   
</div>
HTML的结构每次都在变化,这就是我害怕的原因

$('.start').closest('ol').prev('.target');
对于遍历元素,理解它们的层次结构很重要。如果您阅读了上面的代码,您应该能够理解它工作的原因

可以这样分解:

  • 选择class
    .start
    =>
  • mid
  • 获取与
    相关的
    ol
    类型的最近(向上遍历树)元素。start
    =>
  • 使用类
    .target
    获取与先前选择的
    ol
    元素相关的上一个元素,该元素是预期的元素=>

    目标

希望有帮助

阅读
jQuery
API

对于遍历元素,理解它们的层次结构很重要。如果您阅读了上面的代码,您应该能够理解它工作的原因

可以这样分解:

  • 选择class
    .start
    =>
  • mid
  • 获取与
    相关的
    ol
    类型的最近(向上遍历树)元素。start
    =>
  • 使用类
    .target
    获取与先前选择的
    ol
    元素相关的上一个元素,该元素是预期的元素=>

    目标

希望有帮助

阅读
jQuery
API.

console.log($(.start”).closest(“ol”).prev().html())

目标

  • 开始
    console.log($(.start”).closest(“ol”).prev().html())
    
    

    目标

  • 开始

    $('.start')。最近('ol')。上一个('.target')作为
    .target
    不是直接同级,因此您的代码无法工作。您可以使用
    .closest()
    遍历到
    ol
    ,然后使用
    .prev()
    @FedericoklezCulloca谢谢Federico,我想我被开始文本弄糊涂了;)您的标记无效。不能将
    嵌套为
    的子项,这仅供参考。别担心。你说的“别担心”是什么意思?当你的代码不真实或无效时,人们如何帮助你?参见
    $('.start')。最近('ol')。上一个('.target')作为
    .target
    不是直接同级,因此您的代码无法工作。您可以使用
    .closest()
    遍历到
    ol
    ,然后使用
    .prev()
    @FedericoklezCulloca谢谢Federico,我想我被开始文本弄糊涂了;)您的标记无效。不能将
    嵌套为
    的子项,这仅供参考。别担心。你说的“别担心”是什么意思?当你的代码不真实或无效时,人们如何帮助你?看看如果我试图找到最接近的ins、del和span元素会怎么样。@MariSelvan我建议您先更正/格式化更新后的html。很难分辨出哪个是节点,哪个是值/文本。谢谢。现在我把它做好了(i thing)。@MariSelvan如果你看一下示例html,没有结束div,所以它仍然是无效的html。对于元素遍历,了解层次结构很重要。此外,如果html不断更改,脚本将不断中断。好的,我将关闭div。但是,我的问题是html每次都在更改。这就是为什么我需要像您这样的专业人士的帮助。如果我尝试查找最近的ins、del和span元素,该怎么办。@MariSelvan我建议您首先更正/格式化更新后的html。很难分辨出哪个是节点,哪个是值/文本。谢谢。现在我把它做好了(i thing)。@MariSelvan如果你看一下示例html,没有结束div,所以它仍然是无效的html。对于元素遍历,了解层次结构很重要。此外,如果你的html不断变化,你的脚本将不断中断。好的,我将关闭div。但是,我的问题是html每次都在变化。这就是为什么我需要像你这样的专业人士的帮助。
    $('span').closest('del');
    $('span').closest('ins');
    
    $('.start').closest('ol').prev('.target');