我正在构建一个主要是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> </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]
答案 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}}