jquery中的简单全局变量

时间:2013-11-28 21:45:30

标签: javascript jquery html

<input type="hidden" value="test" id="first" />
<input type="hidden" value="working" id="second" />

function set(){
    //others operations
   var clone = $('#second').clone();
    //others operations
}
var clone = $('#first').clone();

console.log($(clone).val());
var clone = set();
console.log($(clone).val());

这回报我:

test
test

但应该是:

test
working

我怎么做到的?我知道 - 我可以从函数返回值并赋值给变量,但我不能在函数中使用返回值。有可能吗?

fiddle

2 个答案:

答案 0 :(得分:2)

如果您不想在函数中返回值,则不应将clone设置为返回值(将是未定义的)。此外,您应该只在全局范围内声明克隆一次......

var clone;

function set(){
    //others operations
   clone = $('#second').clone();
    //others operations
}
clone = $('#first').clone();

console.log($(clone).val());
set();
console.log($(clone).val());

fiddle

答案 1 :(得分:1)

只需返回值

function set(){
  var ret;
   //others operations
  ret = $('#second').clone();
   //others operations
  return ret;
}

此外,您只需在声明变量时(第一次使用它时)指定var

var clone = $('#first').clone();

console.log($(clone).val());
clone = set();
console.log($(clone).val());

Fiddle