Javascript jquery脚本在chrome、safari和opera下不工作,FF正常

Javascript jquery脚本在chrome、safari和opera下不工作,FF正常,javascript,jquery,Javascript,Jquery,今天我一直在这里寻求帮助 这是成功的-再次感谢RKW 我已经将代码与前一个代码合并在一起了,在FF下,所有的东西都运行得很好。但现在,我已经在Chrome、Safari(mac)和Opera下尝试过了。 在Chrome和Safari中,脚本根本没有执行任何操作(错误控制台保持清晰)。在opera下,只有第一部分工作–添加了活动类 有什么建议吗 $(document).ready(function(){ $('input').focus(function() { /* add class

今天我一直在这里寻求帮助

这是成功的-再次感谢RKW

我已经将代码与前一个代码合并在一起了,在FF下,所有的东西都运行得很好。但现在,我已经在Chrome、Safari(mac)和Opera下尝试过了。 在Chrome和Safari中,脚本根本没有执行任何操作(错误控制台保持清晰)。在opera下,只有第一部分工作–添加了活动类

有什么建议吗

$(document).ready(function(){
    $('input').focus(function() { /* add class active to parent div */
        $('div').removeClass('active');
        $(this).parent().parent().parent().addClass('active');
        $(this).closest("div").addClass('active');
    });

    $('input:radio').focus(function() { /* add class highlight to specified tds in one column */
        var num = 2;
        var col = $(this).closest('td').index() + 1;
        var row = $(this).closest('tr').index();

        var tds = $('td:nth-child(' + col + ')');
        tds = tds.slice(row,row+num);

        $('td').removeClass('highlight');
        tds.addClass('highlight');
    });
});

在第二部分中,尝试更改:

$("input:radio")...


我不太确定您想用highlight类做什么(比如如何/应该突出显示什么),但是,要将这些类正确应用于div,您需要做一些更改

不要使用.focus(),而是要使用:

$('input').click(function()

关于input:radio的一个注意事项是,它必须使用jQuery的引擎来查找单选按钮,因为它不是标准的CSS2/3选择器。如果执行速度至关重要,请使用Thiago Santos'type='radio'(因为CSS理解这一点,所以您的浏览器也会理解)

我改变的另一件事是:

$('div').removeClass('active');
由于它没有在chrome中找到div,但是当我处理转换时,为了在页面中执行相同的操作,我找到了使用.active类的所有元素,并在使用标记设置$(this)元素之前将它们从所有元素中删除。将其更改为:

$('.active').removeClass('active');


我还注意到您使用的是CSS'
nth child
,请注意,这不适用于IE8或更低版本(或怪癖模式下的IE9)。

您应该发布html或更好的JSFIDLE。根据javascript很难猜出你的html结构是什么。有一个链接指向我上一篇文章,html在哪里。我尽量不发布太多重复内容…如果你发布与问题相关的内容,你会得到更好/更快的答案。人们不喜欢仅仅为了理解您当前的问题而点击和阅读其他答案。考虑到您提供的HTML的布局,因为唯一的输入是单选按钮,所以您可以将所有代码放入input:radio或inputmrtsherman:谢谢您的建议。我是这个网站的新手-我有很多东西要学。太糟糕了。。我所做的只是猜测。。但是我认为您应该添加一个示例JSFIDLE,以便ppl能够更好地理解问题所在。感谢您提供了广泛的答案。它现在在Chrome和safari中工作。但这部歌剧的表现还是一样的。第一部分被执行,第二部分没有执行——但它可能与一些drupal和jquery不喜欢有关。标记为已回答。
$('div').removeClass('active');
$('.active').removeClass('active');