2010-03-11 70 views
4

嘿,我不知道这是否可能,但我想设置一个给定的变量在js由参考如何在Javascript中赋值时追加一个字符串值?

我想要做的是,每次我一个字符串传递给函数addstring该文本框的值被添加像+ =

function addstring(string) 
{ 
    document.getElementById("string").value = string; // its a textfield 

} 

我怎样才能做到这一点?

+5

你的意思是将一个字符串引用赋值给元素值,以便在字符串更改时该值发生变化? – 2010-03-11 09:38:43

+6

我不清楚你的实际问题涉及通过参考。 – 2010-03-11 09:43:26

+5

这就是当一个问题不清楚时会发生什么,你会得到很多复杂的答案,只是猜测被问到的真正含义。 – 2010-03-11 09:45:55

回答

0

+=工作正常。

var str = "stack"; 
str += "overflow"; 

console.log(str); //alert(str); Use firebug!! 

计算器

+0

+ =不适用于我,我真的不知道为什么我不 – streetparade 2010-03-11 09:48:38

+0

@streetparade:显示您添加的代码和您收到的错误。 (在Firefox上使用firebug(add-on)或开发人员工具(ctrl + shift + j)如果在Chrome上) – 2010-03-11 09:51:48

+0

hmm ..这对我有用 document.getElementById(“string”)。值+ =字符串; 但这没有工作 \t var sending = document.getElementById(“string”).value; \t sending + = string; – streetparade 2010-03-11 09:55:14

0

document.getElementById("string").value = document.getElementById("string").value + string;

+3

为什么不使用'+ ='?为什么要多次查看元素? – 2010-03-11 09:43:01

+0

Hy感谢您的快速回答,不幸的是+ =没有工作,我不知道为什么 – streetparade 2010-03-11 09:47:18

+1

@streetparade:是的,它确实(http://pastie.org/864704)。这表明问题在于别处。 – 2010-03-11 09:50:17

2

如果其申请,那么你可以使用Value属性

function addstring(string) 
{ 
    document.getElementById("string").value += string.value; 

} 

输入文本的参考见value

1

你的代码示例将工作的很好+=;完整的例子如下。这表明你在其他地方存在的问题。

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
<title>Test Page</title> 
<style type='text/css'> 
body { 
    font-family: sans-serif; 
} 
</style> 
<script type='text/javascript'> 
function addstring(string) 
{ 
    document.getElementById('string').value += string; 
} 
</script> 
</head> 
<body><div> 
<input type='text' id='string' value=''> 
<br><input type='button' value='One' onClick="addstring('one');"> 
<input type='button' value='Two'  onClick="addstring('two');"> 
<input type='button' value='Three' onClick="addstring('three');"> 
</div></body> 
</html> 
-1

JavaScript不参照支持传递参数 - 事实并非如此

其实它的作用。原型设计可以创建对各种javascript对象(包括字符串)的真实引用。

通过真实的参考我的意思是当:

  • 改变一个变量作出或对象 按引用传递的 反映在实际的变量 beeing通过
  • 的变化是由所有 引用看到相同变量
  • 大家都知道参考可能 更改参考变量

要创建一个真正的参考变量:

  • 创建一个构造函数
  • 原型您的 参考变量构造
  • 没有声明构造 函数内部与 同名变量!
  • 创建的变化()函数 改变原型变量或做 如此直接
  • 可选:创建一个变化()函数引用 你的构造被设置 到CHANGEREF()函数uppon内 创作

变化做出这种方式可以看出,它们可能由其他TestRef(改变)对象

function TestRef(s) { 
    this.string = 'Own test-string: ' + s; 
    this.change = ChangeRef; 
} 
function ChangeRef(s) { 
    TestRef.prototype.refStr = s; 
    return TestRef.prototype.refStr; 
} 
r = 'RefStr'; 
TestRef.prototype.refStr = r; // PROTOTYPE => 'RefStr', copy of r 

s = new TestRef('s'); // Obj.string = Own test-string: s, Obj.refStr = RefStr 
o = new TestRef('o'); // Obj.string = Own test-string: o, Obj.refStr = RefStr 
ChangeRef('ChangedStr'); // Change referenced string! 
TestRef.prototype.refStr; // => ChangedStr, referenced string changed 
r; // => RefStr, original string intact 
x = new TestRef('x'); // Obj.string = Own test-string: x, Obj.refStr = ChangedStr. New sees changed string 
s; // => Obj.string = Own test-string: s, Obj.refStr = ChangedStr. Old sees changed string 
o; // => Obj.string = Own test-string: o, Obj.refStr = ChangedStr. Old sees changed string 
s.change('Changed by local function'); 
x; // => Obj.string = Own test-string: o, Obj.refStr = Changed by local function 
+4

使用参考!=通过参考。我们的意思是真实的传递,例如在C++中,是否可以将一个变量传递给函数(不是创建一些“引用”对象;而是直接传递该变量),并且该函数可以分配给该变量(而不是调用某个方法;赋值)被分配到原来的范围内。这在JavaScript中不可行。 – user102008 2012-05-26 01:57:05

0

您可以首先将对象转换为JSON(注意循环引用),然后再解析它。像这样:

function clone(obj) { 
    return JSON.parse(JSON.stringify(obj)); 
} 

这使用内部浏览器的JSON例程(安全&比使用外部资源更快)。如果您只需拥有向后兼容性,则可以从JSON.org下载核心JSON例程。