Javascript IE在jQuery之后不更新代码?

Javascript IE在jQuery之后不更新代码?,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,我有一个日历asp页面,用户可以安排时间,每个人的时间都显示在这个表上(类似于谷歌日历,但只有月视图)。我已经安装并运行了它,它工作得很好,但我需要在打印时编辑页面,以确保所有内容都适合一个页面。该表是通过ASP循环生成的,但以下是基本结构 <table id='calendar' class="cal"> <tr class="cal"> <td class="cal" onclick="shoForm('5_10');">10 <di

我有一个日历asp页面,用户可以安排时间,每个人的时间都显示在这个表上(类似于谷歌日历,但只有月视图)。我已经安装并运行了它,它工作得很好,但我需要在打印时编辑页面,以确保所有内容都适合一个页面。该表是通过ASP循环生成的,但以下是基本结构

<table id='calendar' class="cal">
<tr class="cal">
    <td class="cal" onclick="shoForm('5_10');">10
    <div class="cellDiv" id="5_10"></div>
    </td>
</tr>
</table>
现在,所有这些都可以很好地工作,网页的视觉效果也很好。然而,当他们点击“打印”按钮时,我试图隐藏某些片段

函数printThis(){
var name=document.getElementsByName(“itmUserName”);
对于(var i=0;i1)
名称[i]。innerHTML=names[i]。innerHTML.charAt(0)+名称[i]。innerHTML.split(“”[1]。charAt(0);
名称[i].innerHTML=“[”+名称[i].innerHTML+“]”;
}
…更多代码。。。。
}
这在FF中运行良好,但在IE中不起作用。当我使用开发者控制台(F12)查看IE中的代码时,它甚至没有显示通过jQuery添加的项。页面加载并显示所有内容,但代码似乎没有反映页面上的内容

<td class="cal" onclick="shoForm('5_16');">
    Text - 16
    <div class="cellDiv" id="5_16"/>
</td>

文本-16
注意:IE版本是8.0.6001.18702,我在这里找到了答案:

改变

var names=document.getElementsByName("itmUserName");


现在它可以正常工作了。

您过度滥用了
innerHTML
属性

相反,为什么不这样做:

<span name="itmUserName"><span class="printOn">[</span>J<span class="printOff">ohn </span>S<span class="printOff">mith</span><span class="printOn">]</span></span>

当用户在屏幕上打印或查看时,这将显示/隐藏相关部分。

动态添加的元素不是源代码的一部分,而是。。。。等等。。。。动态添加!你添加的内容是无效的,除非句点和缺少的HTML是为了说明问题,大多数浏览器都会帮你解决,但IE可能不会。adeneo:我知道,但在开发者控制台中,动态添加的元素会出现。此外,它们应该能够通过
document.getElementsByName
与之交互。这里的问题是,这两种情况在IE8中都没有发生,而且printThis()函数是由window.print()触发的吗?不,它是由屏幕上的按钮触发的。我想知道
getElementsByName
是否只针对可以具有name属性且在IE8中仍然有效的元素。
name
是span的有效属性吗(我想这更像是一个修辞问题,当然name属性对span无效)?数据是通过AJAX/jQuery添加的,名称是完整的,因此无论如何我都需要拆分数据,如果用户需要打印页面而不是每次打印,我发现这样做更容易。
<td class="cal" onclick="shoForm('5_16');">
    Text - 16
    <div class="cellDiv" id="5_16"/>
</td>
var names=document.getElementsByName("itmUserName");
var names=$('[name="itmUserName"]');
<span name="itmUserName"><span class="printOn">[</span>J<span class="printOff">ohn </span>S<span class="printOff">mith</span><span class="printOn">]</span></span>
@media screen {.printOn {display:none}}
@media print {.printOff {display:none}}