这个问题让我很困惑。我在一些链接上使用“for”属性来标识它们所要操作的元素。在Firefox、IE9和IE8中,一切都运行得很好...但是IE7会出现问题并返回“undefined"。
以下是我正在使用的jQuery代码要点:
在此之前,我意识到锚点不应该是自动关闭元素。 我从我的应用程序发送的HTML是
问题在于
我使用观察变量进行了深入挖掘,我可以看到选择器正在工作,并且在此上下文中的
正如我所说,Firefox,IE9和IE8都可以正常工作……只有IE7不能。 有什么想法吗?
供参考,我正在使用jQuery 1.6.2 ...
以下是我正在使用的jQuery代码要点:
$(document.ready(function() {
var editor_icons = $('.edit-button');
editor_icons.each(function() {
var $this = $(this),
parent = $('#' + $this.attr('for'));
var left = parent.position().left + parent.innerWidth() - 58 - 3,
top = parent.position().top + 3;
// ... you get the point ...
});
});
一个要操作的示例HTML元素:
<div id="content_wrapper">
<a class="edit-button" href="javascript:void(0);" for="index_primary_content" />
<div id="index_primary_content">
....
</div>
</div>
在此之前,我意识到锚点不应该是自动关闭元素。 我从我的应用程序发送的HTML是
<a></a>
,而IE将其解释为<a />
。 我在元素之间添加了
以确保这不是一个解释问题,但我得到了完全相同的错误。问题在于
$this.attr('for')
返回“undefined”,因此parent.position()。left
抛出“对象为null或未定义”的错误。我使用观察变量进行了深入挖掘,我可以看到选择器正在工作,并且在此上下文中的
$this
确实选择了正确的元素并且已设置“for”属性……但我认为jQuery没有找到它。正如我所说,Firefox,IE9和IE8都可以正常工作……只有IE7不能。 有什么想法吗?
供参考,我正在使用jQuery 1.6.2 ...
for
的原因是什么?或许你可以尝试给<a>
和对应的<div>
分配相同的类,然后通过这种方式找到它们? - Jackfor
,而是使用target_ele
或其他名称,它应该仍然可以工作。你的编辑器会警告你,但它应该能够工作。 - Jack