<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
我怎么做到的?我知道 - 我可以从函数返回值并赋值给变量,但我不能在函数中使用返回值。有可能吗?
答案 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());
答案 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());