jQuery错误解决:意外地调用了方法或属性访问

本文介绍了一种在Internet Explorer浏览器中动态更改HTML内容时遇到的问题及解决方案。问题表现为使用jQuery进行DOM操作时出现错误,原因是IE对动态添加的内容有特定的要求。通过调整DOM结构,在`tr`元素外部包裹`table`标签,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题现象:动态的改变HTML元素的内容时发生以下js报错:

报错位置:位于jQuery.js的代码片段

append:function(){

return this.domManip(arguments,true,function(E){

if(this.nodeType==1) {

this.appendChild(E)

}

})}

jQuery错误解决:意外地调用了方法或属性访问

 

JS代码:

function toPreCalc() {

    if(validisOrNotSelected()) {

        $("#noticed").html("已勾选的产品");

    }else{

        $("#noticed").html("所有存在自营客户存续份额的产品");

    }

}

function validisOrNotSelected (){

    var count = $("input[name='serial_no']:checked").length;

    return (count>0);

}

DOM结构:

<div align="center"><br/>

    <tr>

        <td width="80px" align="left" nowrap="nowrap" >预算日期:</td>

        <td align="left" nowrap="nowrap" colspan="2">

        <input type="text" id="preCalcDate" name="preCalcDate" class="Wdate" onfocus="WdatePicker()" size="15" value="<%= preCalcDate %>"/>

        </td><br/>

    </tr>

    <tr>

        <td width="80px" align="left" nowrap="nowrap" name="notice">
            <font>计算范围:</font>            
        </td>

        <td align="left" nowrap="nowrap" id="noticed" name="notice">
            <font> </font>
        </td>

    </tr><br/>

</div>

解决过程:

查资料发现该问题的产生原因为:ie对动态append的内容有要求,需要将一个具有完整意义的html一起append到代码中 。

仔细检查发现,我的div里直接以tr元素开始了,这对于要求严格的IE来说显然不符合其规定,从严谨的角度来讲;tr元素必须是在table元素里才算是完整的html代码。

然后再tr外再加了一个table元素,问题得以完美解决~

以下是修改后的DOM结构:

<div align="center"><br/>

    <table>

        <tr>

            <td width="80px" align="left" nowrap="nowrap" >预算日期:</td>

            <td align="left" nowrap="nowrap" colspan="2">

            <input type="text" id="preCalcDate" name="preCalcDate" class="Wdate" onfocus="WdatePicker()" size="15" value="<%= preCalcDate %>"/>

            </td><br/>

        </tr>

        <tr>

            <td width="80px" align="left" nowrap="nowrap" name="notice">
                <font>计算范围:</font>
            </td>

            <td align="left" nowrap="nowrap" id="noticed" name="notice">
                <font> </font>
            </td>

        </tr><br/>

    </table>

</div>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值