嘿,我不知道這是否可能,但我想設置一個給定的變量在js由參考。如何在Javascript中賦值時追加一個字符串值?
我想要做的是,每次我一個字符串傳遞給函數addstring
該文本框的值被添加像+ =
function addstring(string)
{
document.getElementById("string").value = string; // its a textfield
}
我怎樣才能做到這一點?
嘿,我不知道這是否可能,但我想設置一個給定的變量在js由參考。如何在Javascript中賦值時追加一個字符串值?
我想要做的是,每次我一個字符串傳遞給函數addstring
該文本框的值被添加像+ =
function addstring(string)
{
document.getElementById("string").value = string; // its a textfield
}
我怎樣才能做到這一點?
+=
工作正常。
var str = "stack";
str += "overflow";
console.log(str); //alert(str); Use firebug!!
計算器
+ =不適用於我,我真的不知道爲什麼我不 – streetparade 2010-03-11 09:48:38
@streetparade:顯示您添加的代碼和您收到的錯誤。 (在Firefox上使用firebug(add-on)或開發人員工具(ctrl + shift + j)如果在Chrome上) – 2010-03-11 09:51:48
hmm ..這對我有用 document.getElementById(「string」)。值+ =字符串; 但這沒有工作 \t var sending = document.getElementById(「string」).value; \t sending + = string; – streetparade 2010-03-11 09:55:14
document.getElementById("string").value = document.getElementById("string").value + string;
爲什麼不使用'+ ='?爲什麼要多次查看元素? – 2010-03-11 09:43:01
Hy感謝您的快速回答,不幸的是+ =沒有工作,我不知道爲什麼 – streetparade 2010-03-11 09:47:18
@streetparade:是的,它確實(http://pastie.org/864704)。這表明問題在於別處。 – 2010-03-11 09:50:17
如果其申請,那麼你可以使用Value屬性
function addstring(string)
{
document.getElementById("string").value += string.value;
}
輸入文本的參考見value
Javascript不支持通過引用傳遞參數。
此鏈接提供了一個很好的分解和一些workarounds- Passing by Value or reference
你的代碼示例將工作的很好+=
;完整的例子如下。這表明你在其他地方存在的問題。
<!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>
JavaScript不參照支持傳遞參數 - 事實並非如此
其實它的作用。原型設計可以創建對各種javascript對象(包括字符串)的真實引用。
通過真實的參考我的意思是當:
要創建一個真正的參考變量:
變化做出這種方式可以看出,它們可能由其他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
使用參考!=通過參考。我們的意思是真實的傳遞,例如在C++中,是否可以將一個變量傳遞給函數(不是創建一些「引用」對象;而是直接傳遞該變量),並且該函數可以分配給該變量(而不是調用某個方法;賦值)被分配到原來的範圍內。這在JavaScript中不可行。 – user102008 2012-05-26 01:57:05
您可以首先將對象轉換爲JSON(注意循環引用),然後再解析它。像這樣:
function clone(obj) {
return JSON.parse(JSON.stringify(obj));
}
這使用內部瀏覽器的JSON例程(安全&比使用外部資源更快)。如果您只需擁有向後兼容性,則可以從JSON.org下載核心JSON例程。
你的意思是將一個字符串引用賦值給元素值,以便在字符串更改時該值發生變化? – 2010-03-11 09:38:43
我不清楚你的實際問題涉及通過參考。 – 2010-03-11 09:43:26
這就是當一個問題不清楚時會發生什麼,你會得到很多複雜的答案,只是猜測被問到的真正含義。 – 2010-03-11 09:45:55