jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了JQuery遍历,正确使用.next()时遇到麻烦大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以向我解释为什么.next()不能像我期望的那样在这个例子中工作:

HTML结构

<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>

Jquery(目的是突出显示与点击的链接相关的问题答案div)

$(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.

关于如何找到< div>的任何建议在< a name =“...”>< / a>之后立即出现.

解决方法

这不是您问题的直接答案.但是,您可以为div提供相应的ID,而不是使用命名锚点:

<div id="q1">Question 1... <br /> Answer 1...</div>
<div id="q2">Question 2... <br /> Answer 2...</div>

JavaScript的

$('a').click(function(){                 
    $(this.href).css('BACkground-color','red');
});

元素上的ID与命名锚点的作用相同.

您的jQuery代码本身看起来是正确的(也与HTML有关).但我怀疑浏览器正在以某种方式纠正生成的DOM,因为(afaik)div元素不允许在p元素内部.

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

<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>

你可以看到第一个元素没有下一个兄弟.它应该适用于第二个.

大佬总结

以上是大佬教程为你收集整理的JQuery遍历,正确使用.next()时遇到麻烦全部内容,希望文章能够帮你解决JQuery遍历,正确使用.next()时遇到麻烦所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。