2016-02-27 85 views
1

我有這個循環應該將<input type="text"/>值設置爲none並更新佔位符。 當我登錄節點它工作正常,但valueplaceholder不更新?哪裏不對?QuerySelector設置文本值

數據是一個JSON對象。

var data = {"password":"password","username":"xhinii"}; 

JS:

var data = {"password":"password","username":"xhinii"}; 

for(var prop in data) { 
    console.log(document.querySelector('input[name = "' + prop + '"]')); //works fine. logs the node. 
    document.querySelector('input[name = "' + prop + '"]').value = ''; //doesn't work 
    document.querySelector('input[name = "' + prop + '"]').setAttribute('placeholder', data[prop]);//doesn't work 
} 
+0

你的數據是**不**一JSON對象。請不要修改您的問題以修復導致您發佈的問題的錯字或問題。相反,如果問題是由簡單的錯誤或錯字導致的,請關閉該問題。如果您有其他/不同的問題,請打開一個新問題。 – 2016-02-27 17:32:13

+0

是的,它是...... –

+0

沒有這樣的東西作爲JSON對象。 JSON是一種用於交換信息的基於字符串的表示形式。你在這裏有一個普通的日常JavaScript對象。 – 2016-02-27 17:34:40

回答

1

你不應該分析的對象只是用它:

var data= {"password":"password","username":"xhinii"}; 
 

 
for(var prop in data) { 
 
    document.querySelector('input[name = "' + prop + '"]').value = prop; 
 
    document.querySelector('input[name = "' + prop + '"]').setAttribute('placeholder', data[prop]) 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input name='password' /> 
 
<input name='username' />

+0

什麼是解決方案? –

+0

你的意思是?你爲什麼要更新瀏覽器中的DOM? –

+0

不是DOM。 'text value'' –