为什么$(“#id”)。addclass jquery在IE9中不起作用

时间:2015-08-25 19:02:02

标签: jquery internet-explorer-9

我对jquery的了解才刚刚开始。 下面的代码适用于IE11但不适用于IE9。

<html>
    <body>
        <div id='panel'></div>
    </body>
</html>    
$(document).ready(function () {
    loadData();    
});

function loaddata(){
var div = document.createElement('div');

var str='<div id="dummy" onclick="slideOut(this.id);">Click Here</div>'

div.innerHTML = str;

        document.getElementById("panel").appendChild(div);
}

function slideOut(temp){

$("'#'"+temp+"'").addclass("hidden");
}

调用slideOut但它没有向div添加隐藏类。 我认为这是$(document)而不是$(“#id”)。上面的代码在IE11中运行良好,但在IE9中运行不正常(在调试器中模拟)。 请帮忙。

2 个答案:

答案 0 :(得分:2)

jQuery区分大小写。 addClass是正确的方法名称,&#39; c&#39;应该是大写的。

尝试

$("#" + temp).addClass("hidden");

您将jsFiddle设置为onDomReady,这意味着您不需要冗余的$(document).ready()语句。您可以将其设置为no wrap in <body>以使其正常工作。

此外,jQuery有一个名为.hide()的辅助方法,因此您不需要附加隐藏的CSS类。 $("#" + temp).hide()也可以。

以下是您的示例的working jsFiddle

答案 1 :(得分:1)

尝试:

var str='<div id="dummy" onclick="slideOut(this.id);return false;">Click Here</div>'

$('#'+temp).addClass('hidden');