2010-03-11 103 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例程。