2016-02-27 108 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'' –