如何在Javascript赋值期间追加字符串值?
嘿,我不知道这是否可行,但我想通过引用在js中设置一个给定的变量 我想做的是,每次我将字符串传递给函数如何在Javascript赋值期间追加字符串值?,javascript,variable-assignment,Javascript,Variable Assignment,嘿,我不知道这是否可行,但我想通过引用在js中设置一个给定的变量 我想做的是,每次我将字符串传递给函数addstring,文本字段的值就会像+= function addstring(string) { document.getElementById("string").value = string; // its a textfield } 我该怎么做呢?document.getElementById(“string”).value=document.getElementById(
addstring
,文本字段的值就会像+=
function addstring(string)
{
document.getElementById("string").value = string; // its a textfield
}
我该怎么做呢?
document.getElementById(“string”).value=document.getElementById(“string”).value+string代码>+=
工作正常
var str = "stack";
str += "overflow";
console.log(str); //alert(str); Use firebug!!
堆栈溢出
如果是对输入文本字段的引用,则可以使用value属性
function addstring(string)
{
document.getElementById("string").value += string.value;
}
请参阅Javascript不支持通过引用传递参数
此链接提供了一个很好的细分和一些解决方法-您的代码示例可以很好地使用+=
;完成下面的示例。这表明你的问题在别处
<!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>
测试页
身体{
字体系列:无衬线;
}
函数addstring(字符串)
{
document.getElementById('string')。value+=string;
}
Javascript不支持通过引用传递参数-不正确
事实上是的。原型设计使创建对所有类型javascript对象(包括字符串)的真实引用成为可能
我所说的真实参照系指:
- 对变量或对象所做的更改
通过引用传递的是
反映在实际变量上
比林过去了
- 所有人都看到了这种变化
对同一变量的引用
- 每个知道参考资料的人都可能
更改引用的变量
要创建对变量的真实引用,请执行以下操作:
- 创建构造函数
- 在上原型化您的参考变量
构造器
- 不要使用
构造函数中的相同名称
功能李>
- 创建一个change()函数
更改原型变量或
如此直接
- 可选:创建change()函数引用
在已设置的构造函数中
到ChangeRef()函数uppon
创作
以这种方式进行的更改将被看到,并且可能会被所有其他TestRef()对象更改
您可以首先将对象转换为JSON(注意循环引用),然后再次解析它,从而克隆该对象。像这样:
function clone(obj) {
return JSON.parse(JSON.stringify(obj));
}
这将使用内部浏览器的JSON例程(比使用外部资源更安全、更快)。如果您只是需要向后兼容,您可以从JSON.org下载核心JSON例程。您的意思是为元素值分配一个字符串引用,以便在字符串更改时值也会更改吗?我不清楚您的实际问题涉及通过引用传递。这是在问题不清楚时发生的情况,你会得到很多混杂的答案,这些答案只是在猜测所问问题的真正含义。嗯。。问题更多的是关于字符串连接,是吗?我对“引用变量”感到困惑P“通过引用传递变量”与提供的示例无关为什么不使用+=
?为什么要多次查找该元素?谢谢你的快速回答,不幸的是+=不起作用,我不知道why@streetparade:是的。这表明问题出在其他地方。@streetparade:显示要添加的代码和得到的错误。(在firefox上使用firebug(附加组件),或者在Chrome上使用开发者工具(ctrl+shift+j)。。这对我来说是有效的document.getElementById(“string”).value+=string;但这不起作用:var sending=document.getElementById(“string”).value;发送+=字符串@streetparade:是的,因为你在那里做的是将文本框内容的值检索到发送
,然后将你的字符串添加到该值中——这与文本框无关。记住a+=b是a=a+b的简写,它不是array.push(foo)的字符串版本这会改变数组本身。使用引用!=通过参考传递。我们所指的真正的传递引用,例如在C++中,是可以将变量传递到函数中(不创建一些“引用”对象;而是直接传递变量),并且函数可以赋值给该变量(不调用它上的一些方法;赋值),就像变量被赋值在原始范围内一样。这在JavaScript中是不可能的。
function clone(obj) {
return JSON.parse(JSON.stringify(obj));
}