jQuery“这个”问题

时间:2011-11-10 22:43:34

标签: jquery

我是jQuery的新手。我正在尝试将值传递给函数。

<div class="the_service" id="ecommerce" onClick="javascript: gorightthere(ecommerce);"> 

function gorightthere(this){

    var gothere = $('h2[name="'+this+'"]');
    if (gothere.length){
$('html, body').animate({
                    scrollTop: gothere.offset().top
                     }, 2000);
        removeClass('selected');
        gothere.addClass('selected');
    }
};

我要做的是将值“电子商务”传递给该功能。我想使用“this”因为我有许多不同的值要传递,我想做一个函数,它将与onClick事件后传递的每个值一起使用。

任何帮助?

由于

4 个答案:

答案 0 :(得分:7)

您的变量名称与保留关键字this冲突。使用另一个变量名称,您应该全部设置。通常,您不应该使用this作为变量名,因为它在几乎所有基于C的语言中都具有非常特殊的含义:

function gorightthere(value) {      
    var gothere = $('h2[name="' + value + '"]'); 
    if (gothere.length){ 
        $('html, body').animate({ 
            scrollTop: gothere.offset().top  
            }, 2000); 
        removeClass('selected'); 
        gothere.addClass('selected'); 
    } 
};

答案 1 :(得分:1)

为什么不使用普通变量作为参数,而不是使用'this'?这是因为this是JS中的关键字。

答案 2 :(得分:1)

'this'是保留关键字,请尝试以下代码:

<div class="the_service" id="ecommerce" onClick="javascript: gorightthere(this);"> 

function gorightthere(element){

    var gothere = $(element);
    if (gothere.length){
$('html, body').animate({
                    scrollTop: gothere.offset().top
                     }, 2000);
        removeClass('selected');
        gothere.addClass('selected');
    }
};

答案 3 :(得分:0)

实际上你可以像这样反转你的变量: 在你的div标签更改 - &gt; javascript:gorightthere(this); function gorightthere(电子商务){

var gothere = $('h2[name="'+ecommerce.id+'"]');

假设您的div中的id代表h2元素中的名称,否则将需要进行其他轻微修改。