ie 和 firefox 中列表选择的不同行为?

发布于 2024-12-19 22:20:40 字数 436 浏览 0 评论 0原文


<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
 <ul>
   <li><span><a href=''>+</a>Sub Item 1</span></li>
   </ul>
 </ul>

当我尝试执行

jQuery('a').parent().parent().html(); 时,我有一个像这样的无序列表,其中包含 1 级和 2 级项目; 它的行为ie 中的情况有所不同。在 IE 中,它将下面的 ul 作为其子级,但在 Mozilla 中则不是。可能是什么原因以及解决办法。


<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
 <ul>
   <li><span><a href=''>+</a>Sub Item 1</span></li>
   </ul>
 </ul>

I have a unordered list like this with level 1 and level 2 items when i am trying to do a

jQuery('a').parent().parent().html(); it is behaving differently in ie. In IE it is taking ul below it as its child but in mozilla it isnt. What can be the cause and solution to it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧伤还要旧人安 2024-12-26 22:20:40

我已经在 IE 和 IE 中进行了测试Firefox,并且在两者中都采用相同的` +Item 1

另外,您还错过了第一个父级的括号,我已经像这样进行了测试

$("#reorderps").append(jQuery('a').parent().parent().html());

,结果我在两个浏览器中都有这个

+Item 1
+Sub Item 1
+Item 1

这里是 jsfiddle http://jsfiddle.net/sUxyt/1/

为什么第 1 项?因为 jQuery('a') 返回数组给你,并且jQuery('a') 意味着 jQuery('a').eq(0)

如果你想进入下一行,你必须写这样的东西

$("#reorderps").append(jQuery('a').eq(1).parent().parent().html());

在这种情况下,你必须在我的例子中得到这个jsfiddle

+Item 1
+Sub Item 1
+Sub Item 1

编辑:

我根据需要更改 Javascript 部分,就像这样 是

jQuery('ul#reorderps a').click(function(e){ alert(jQuery(this).parent().parent().html()); e.preventDefault(); });

的,IE 7 和 IE 7 之间存在差异。其他浏览器。所有需要将您的 html 从此更改

<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
 <ul>
   <li><span><a href=''>+</a>Sub Item 1</span></li>
   </ul>
 </ul>

<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
    <li>
 <ul>
   <li><span><a href=''>+</a>Sub Item 1</span></li>
   </ul>
    </li>
 </ul>

该行为的原因是 IE 7 无法识别 li 的结束标记,并将 li 的innerHTML 放大一点。
将 li 添加到第二部分解决问题:)

I've tested in IE & Firefox, and in both it take same` +Item 1

Also you have missed brackets with first parent,I've tested like this for example

$("#reorderps").append(jQuery('a').parent().parent().html());

And in result I have this in both browsers

+Item 1
+Sub Item 1
+Item 1

Here is jsfiddle http://jsfiddle.net/sUxyt/1/

Why Item 1?Because jQuery('a') returns array to you, and jQuery('a') means jQuery('a').eq(0)

If you want to take next line you must write something kind of this

$("#reorderps").append(jQuery('a').eq(1).parent().parent().html());

In this situation you must get this in example of my jsfiddle

+Item 1
+Sub Item 1
+Sub Item 1

EDIT:

I change Javascript part as you want,like this

jQuery('ul#reorderps a').click(function(e){ alert(jQuery(this).parent().parent().html()); e.preventDefault(); });

And yeah, there is a difference in IE 7 & other browsers. All is need to change your html from this

<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
 <ul>
   <li><span><a href=''>+</a>Sub Item 1</span></li>
   </ul>
 </ul>

to

<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
    <li>
 <ul>
   <li><span><a href=''>+</a>Sub Item 1</span></li>
   </ul>
    </li>
 </ul>

The reason of that behavior is that IE 7 doesn't recognize the end tag of your li, and take the innerHTML of your li little bit larger.
Adding li to second part solve the problem:)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文