IE和javascript,用JS添加内容

时间:2011-09-05 09:03:47

标签: javascript internet-explorer internet-explorer-9

我正在构建一个主要是javascript的调查问卷。在单击下一个按钮并在页面加载后,每个问题都会添加到带有JS的页面中。

在IE中,如果我查看源代码,它实际上并没有显示JS添加的问题。问题被添加,这部分工作正常。

现在,我正在做:

f.parent().parent().attr("class").split(" ")[1]

从问题中获取课程。这适用于IE8和所有其他浏览器,但不适用于IE9。

如果我这样做:

f.parent().parent().hasClass("foo")

它返回false!但它确实有类,虽然我看不到任何用JS添加的问题的html,我认为IE没有看到它!!

这两个都适用于IE8 ......

如果我在console.log中找到一个对象,它只给我一个文本:LOG:[object Object]。这也无济于事,因为你甚至无法像所有其他调试器一样点击对象! IE ....

修改

经过更多测试:

单击按钮可调用此class()部分。如果我做:     的console.log($(f.parent()。父())。文本()) 它返回按钮文字!所以.parent()。parent()实际上不能正常工作

HTML

<tr class="matrix_row other>
<td>Other (specify)</td>
<td>&nbsp;</td>
<td>
<a class="add_more_matrix_input" href="#">Add one</a>
</td>
</tr>

使用Javascript:

$(".add_more_matrix_input").live("click", function() {
            var f = $(this);
            // console.log($(f.parent().parent()).text())
            last_key = f.parent().parent().attr("class").split(" ")[1]

1 个答案:

答案 0 :(得分:1)

您最好使用f.parents('tr')tr联系。不确定IE9可以做什么来使f.parent().parent()不是你的tr,但它确实做了一件坏事:)。

无论如何,使用f.parents('tr')可以保护您免受因a div覆盖hasClass而产生的副作用,这可能是将来某天所需要的。

如果它仍然不起作用,请告诉我们,然后我们会尝试深入挖掘。

此外,您应该使用class。如果由于某种原因它无效,请找出原因,而不是尝试分析"属性。

<强>更新

此外,您错过了tr中的课程声明中的结束<tr class="matrix_row other>:{{1}}