Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JQuery遍历,无法正确使用.next()

JQuery遍历,无法正确使用.next()
EN

Stack Overflow用户
提问于 2011-05-06 15:32:55
回答 2查看 71关注 0票数 4

谁能解释一下为什么.next()不能像我在这个例子中期望的那样工作:

HTML结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<p>
  <ol>
    <li><a href="#q1">Question 1 Link</a></li>
    <li><a href="#q2">Question 2 Link</a></li>
  </ol>
</p>
<p>
  <a name = "q1"></a><div>Question 1... <br /> Answer 1...</div>
  <a name = "q2"></a><div>Question 2... <br /> Answer 2...</div>
</p>

question+answer (目的是突出显示与点击的链接相关的Jquery div )

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(function() {      
    $('a').click(function(){
        href = $(this).attr('href').split('#')[1];
        target = $('a[name="'+href+'"]').next('div');
        // For simplicity in the example, I will simply highlight in red.                        
        target.css('background-color', 'red');
    }); 
});

然而,这并不起作用。如果我在代码中放置一个console.log(target.html()),我发现它返回null

关于如何找到紧跟在<a name="..."></a>之后的<div>的任何建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-06 15:37:06

这不是对你问题的直接回答。但是,您可以为divs提供相应的ID,而不是使用命名锚点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="q1">Question 1... <br /> Answer 1...</div>
<div id="q2">Question 2... <br /> Answer 2...</div>

JavaScript

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('a').click(function(){                 
    $(this.href).css('background-color', 'red');
});

元素上的ID与命名锚点的工作方式相同。

您的jQuery代码本身看起来是正确的(就HTML而言也是如此)。但我怀疑浏览器正在以某种方式更正生成的DOM,因为(afaik) div元素在p元素中是不允许的。

更新:似乎是正确的(或多或少),at least Chrome produces this (检查DOM):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<p>
    <a name="q1"></a>
</p>
<div>Question 1... <br> Answer 1...</div>
<a name="q2"></a>
<div>Question 2... <br> Answer 2...</div>
<p></p>

可以看到,第一个a元素没有下一个同级元素。不过,它对第二个应该是有效的。

票数 4
EN

Stack Overflow用户

发布于 2012-03-06 16:19:52

我需要一个不涉及锚和ids的解决方案。

这个插件查找整个DOM中的下一个事件,而不仅仅是兄弟--我认为这是您最初期望的方式。

换句话说,如果您正在查看标记,您将看到与选择器匹配的下一个标记是什么:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function($){
  $.fn.subsequent = function(selector) {  
    var subsequent = $();       
    this.parents().andSelf().each(function() {
      $(this).nextAll().each(function(){

          //check self
          subsequent = $(this).filter(selector);
          if(subsequent.length > 0) return false;   

          //check kids
          subsequent = $(this).children(selector);
          return subsequent.length == 0;                
      });
      return subsequent.length == 0;   
    });
    return subsequent.first();
  };
})(jQuery);

Here is a JS Fiddle example

这只会选择第一个匹配项。您可能希望创建一个subsequentAll版本,以匹配所有后续出现的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5913642

复制
相关文章
jQuery 遍历
jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。
陈不成i
2021/07/22
8730
jquery tmpl遍历
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148365.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/02
1.8K0
jQuery 遍历- 过滤
三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素。
陈不成i
2021/07/22
9880
jQuery遍历函数
.closest():从元素本身開始,逐级向上级元素匹配。并返回最先匹配的祖先元素。
全栈程序员站长
2022/07/07
1.1K0
jQuery 遍历 - 后代
下面的例子返回类名为 "1" 的所有 <p> 元素,并且它们是 <div> 的直接子元素:
陈不成i
2021/07/22
7770
jQuery 遍历 - 祖先
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。
陈不成i
2021/07/22
6650
jquery树遍历
得到当前匹配的元素集合中每个元素的后代, 由一个选择器,jQuery对象,或元素过滤。
IT工作者
2022/03/02
8790
jQuery遍历List对象
在jQuery中,可以使用each()方法以一种非常直观的方式来模拟break和continue关键字的功能。只需在回调函数中编写一条return语句即可。要停止迭代,只需从回调函数返回false,这与在普通循环语句中使用break语句类似。要跳过当前迭代并继续进行下一轮迭代,只需返回true即可,这与在循环语句中使用continue类似。
别团等shy哥发育
2023/02/25
2.1K0
jQuery遍历List对象
jQuery 遍历 - 同胞(siblings)
prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同胞元素(在 DOM 树中沿着同胞之前元素遍历,而不是之后元素遍历)。
陈不成i
2021/07/22
7720
JQuery 学习—$.each遍历学习
生活在这样一个充满欢乐的世界中,我们要有欢乐的精神对待工作和生活! 我们每天晚上睡觉早上起来,每天会重复着做很多的事情,我们的生活在程序的角度看其实就是一个循环,这个循环说简单它就简单,说复杂它就很复杂。今天我要用欢乐的方式来介绍的是JQuery的中的一种技术,JQuery 的$.each遍历操作,不管是搞前端还是搞后端javaWeb方向的程序员(猿),你一定会和它偶遇,在某一个转角。 在通往技术的道路上,一定会听到很多流言蜚语,但是我们一定要坚定自己的信念那就是找到一座灯塔,那个灯塔在我们迷茫徘徊的时候可以指引我们朝着正确的方向,那么在技术中指引我们的灯塔是什么呢?那一定是 官方的文档。 1:文档说明
全栈程序员站长
2022/07/19
1.4K0
jQuery 遍历 - siblings() 方法应用
每天写个小demo,最近工作小到1像素,大到n多优化,这个行业真的是有项目的时候忙的要死,没项目的时候闲的发慌,趁着办公室没人的时候,安安静静继续写代码,一个关于jQuery 遍历 - siblings() 方法应用。
王小婷
2019/08/01
8700
jQuery 遍历 - siblings() 方法应用
前端基础-JQuery(each方法遍历)
第7章 each方法遍历 jQuery的隐式迭代会对所有的DOM对象设置相同的值,但是如果我们需要给每一个对象设置不同的值的时候,就需要自己进行迭代了。 作用:遍历jQuery对象集合,为每个匹配的元素执行一个函数 // 参数一表示当前元素在所有匹配元素中的索引号 // 参数二表示当前元素(DOM对象) $(selector).each(function(index,element){});
cwl_java
2020/03/26
1.3K0
如何选择正确的Node框架:Next, Nuxt, Nest?
lighthouse测试报告中可以看到Preformance、Accessibility、Best Practices、SEO都高于70,虽然比其他两个框架低,但不得不说已经是一个比较好的数据,Best Practices 得分nuxt则是高于其他俩个
random_wang
2019/09/10
5.6K0
如何选择正确的Node框架:Next, Nuxt, Nest?
JQuery 遍历被选中的checkbox元素
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/78819667
泥豆芽儿 MT
2018/09/11
2.2K0
JQuery 遍历被选中的checkbox元素
[记]使用jQuery Jcrop 图像裁剪无法更换图片的坑
​ 因为公司需求,需要完成一个显示屏定制的业务,用户自主上传图片然后在线裁剪的功能,我选择了jQuery Jcrop这个插件。 先看看怎么使用 使用方法 载入 CSS 文件 <link rel="stylesheet" href="jquery.Jcrop.css"> 载入 JavaScript 文件 <script src="jquery.js"></script> <script src="jquery.Jcrop.js"></script> 给 IMG 标签加上 ID <img id="e
游魂
2018/06/08
1.6K0
JavaScript 学习-44.jQuery 遍历查找方法
前言 通过 jQuery 遍历,从被查找当前元素开始,在家族树中向上移动(祖先),向下移动(子孙),水平移动(兄弟),这种移动被称为对 DOM 进行遍历。 查找祖先元素 向上遍历 DOM 树,查找父元素和祖先元素 parent()   查找父元素 parents()  查找父元素以及祖先元素,一直到根节点html 示例 <div id="demo"> <h3>jquery 遍历</h3> <p id="p" class="text-info">hello world</p> <for
上海-悠悠
2022/06/14
8400
JavaScript 学习-41.jQuery 中 each 遍历
前言 jQuery.each() 函数用于遍历指定的对象和数组,通过 each 方法可以对 jQuery 内部的子元素进行逐个调用。 each() 遍历数组 语法 $.each( object, callback ) 参数 object Object类型,指定需要遍历的对象或数组。 callback Function类型 指定的用于循环执行的函数。 示例 var arr = ['hello', 'world', 'yoyo'] $.each(arr, function (index, item) {
上海-悠悠
2022/06/07
7620
JavaScript 学习-41.jQuery 中 each 遍历
Jquery 遍历数组之grep()方法介绍
grep()方法用于数组元素过滤筛选。 grep(array,callback,boolean);方法参数介绍。 array   ---待处理数组 callback  ---这个回调函数用来处理数组中的每个元素,并过滤元素,该函数包含两个参数,第一个参数是当前数组元素的值,第二个参数是当前数组元素的下标,返回值是一个布尔值。 下面是grep()方法的源代码: //grep函数,第三个参数表示是否根据fn的结果取反! grep: function( elems, callback, inv
郑小超.
2018/01/24
6710
Python enumerate函数无法顺序遍历字典
本文介绍了Python中enumerate函数的作用,以及如何使用它来遍历字符串、列表、元组和字典。同时,也举例说明了这些数据类型的区别和用法,并给出了相应的示例代码。
chaibubble
2018/01/02
3.1K2
Python enumerate函数无法顺序遍历集合
今天使用Python中的enumerate函数,犯了一个很低级的错误,enumerate用于遍历如字符串,列表,元组中的变量,但是并不能顺序遍历字典中的变量,举个例子:
chaibubble
2019/05/26
1K0

相似问题

使用jquery无法正确遍历

10

无法使用next遍历DOM

410

jQuery遍历.next() .show()

55

jquery使用Next/Prev按钮遍历多个div

10

使用next()和next()遍历列表

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文