<input type="radio" value="radio" id="radio"/>
<script>
function fn(){
this.aa = "obj1"
this.bb = "obj2"
}
var json = {"aa":"json1","bb":"json2"}
var obj = new fn()
var radio = document.getElementById("radio")
console.log("-------------json----------------")
for(var key in json){
console.log(key+"--"+json[key])
}
console.log("-------------new obj----------------")
for(key in obj){
console.log(key+"--"+obj[key])
}
console.log("-------------document----------------")
for(key in radio){
console.log(key+"--"+radio[key])
}
</script>
从上面例子中可以看出:
1、 for in 可以遍历自己定义的json对象 ,和自己new的函数对象。
2、for in 不能遍历页面节点对象,但是把radio换成遍历document不会报错。
3、不建议用for in来遍历节点对象,因为不是所有节点对象属性都支持in运算符的访问。
var obj = {"id": 1, "name":"张三"}
for(var key in obj)
{
alert("Key是:" + key)
alert("对应的值是:" + obj[key])
}
Js遍历json对象所有key及根据动态key获取值:
Js代码
<script type="text/javascript">
getJson('age')
function getJson(key){
var jsonObj={"name":"傅红雪","age":"24","profession":"刺客"}
//1、使用eval方法
var eValue=eval('jsonObj.'+key)
alert(eValue)
//2、遍历Json串获取其属性
for(var item in jsonObj){
if(item==key){ //item 表示Json串中的属性,如'name'
var jValue=jsonObj[item]//key所对应的value
alert(jValue)
}
}
//3、直接获取
alert(jsonObj[''+key+''])
}
</script>
通过上边三种方法就可以取到json中key对应的值。