jquery $(this).html(var)在IE中不起作用

时间:2013-05-18 00:57:56

标签: jquery firefox internet-explorer-10

我有一个var“status”,应该使用Jquery中的.html插入到锚标记中。

(<a class="status"><span>$status</span></a>) 

这类似于Chrome中的魅力,但不适用于IE10或Firefox。我在这个函数的底部添加了console.log,它正确地写了var'status',因为它在Chrome中来回切换,而不是在IE或Firefox中。在那里,日志写道变量是“未定义的”。

 function clickPrice(ev) {
    pp = $(this).closest('.price-point')
    status = pp.attr('data-status')
    if (status=='active') status = 'inactive'
    else status = 'active'
    pp.addClass('dirty')
    pp.attr('data-status', status)
    $(this).html(status)
    console.log(status)
}

怪异。

1 个答案:

答案 0 :(得分:2)

如果没有像jsFiddle那样看到实际功能的代码块,我们很难知道不同浏览器中的行为有什么不同。我建议你先从本地定义你的变量,这样你就不会无意中搞乱其他全局变量:

function clickPrice(ev) {
    var pp = $(this).closest('.price-point');
    var status = pp.attr('data-status');
    if (status === 'active') {
       status = 'inactive';
    } else {
        status = 'active';
    }  
    pp.addClass('dirty').attr('data-status', status);
    $(this).html(status);
    console.log(status);
}

为了获得进一步帮助的最佳机会,请向我们展示相关的HTML,事件处理程序并将其放入正常运行的jsFiddle中。我还建议您检查浏览器错误控制台或调试控制台,看看是否存在任何可能在代码完成之前中断代码的相关脚本错误。