我是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事件后传递的每个值一起使用。
任何帮助?
由于
答案 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元素中的名称,否则将需要进行其他轻微修改。