Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jquery横切javascript对象_Jquery_Socket.io - Fatal编程技术网

如何使用jquery横切javascript对象

如何使用jquery横切javascript对象,jquery,socket.io,Jquery,Socket.io,这是我的客户端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Alerter</title> </head> <body> <script src="jquery.min.js"></script> <script src="http://ww

这是我的客户端代码

<!DOCTYPE html>
 <html lang="en">
 <head>
   <meta charset="utf-8">
   <title>Alerter</title>
 </head>
 <body>
   <script src="jquery.min.js"></script>
   <script src="http://www.example.com:8001/socket.io/socket.io.js"></script>
   <script>
     $(document).ready(function(){

       var socket = io.connect('http://www.example.com:8001');
       socket.on('message', function (data) { do_message(data) });
     });

   function do_message(data){
     var $obj=$(jQuery.parseJSON(data));
     //now what goes in here? 
   };
</script>
</body>
</html>
我想做的是迭代每个“警报”条目,并采取适当的措施(实际的模式比我上面显示的要复杂一些)


jQuery选择器是完成这项任务的正确工具,还是我应该回到本机javascript(即getElementsByTagName或类似工具)上来。所有jQuery文档都基于从DOM中选择有效的html标记,我不知道如何从收到的消息中选择任意标记。

您可以使用
$对数据进行迭代。forEach

var obj = jQuery.parseJSON(data);

$.each(obj['root']['alert'], function(index, value) {
    console.log(value.id);
});
或者您可以使用常规JS:

var obj = jQuery.parseJSON(data);
var alerts = obj['root']['alert'];

for (var key in alerts) {
    var value = alerts[key];

    console.log(value.id);
});

jQuery选择器不能与普通JavaScript对象一起使用

处理普通对象
目前,仅支持以下操作: 在jQuery中包装的普通JavaScript对象上,有: .data()、.prop()、.bind()、.unbind()、.trigger()和.triggerHandler()


您必须使用jQuery.each()或普通JavaScript循环进行迭代。

您可以尝试使用jQuery中的$.each来迭代对象。。试试这个

console.log('status is : ' + data.root.status[0]);

     $.each(data.root.alert , function(i, value){
          console.log ('Dollar is : ' + value["$"]["src"]);
           console.log ('Time is : ' + value["time"][0]); 
           console.log ('ID is : ' + value["id"][0]); 
     });

基本上与我勾选的答案相同-抱歉,我无法将两个答案标记为正确。
console.log('status is : ' + data.root.status[0]);

     $.each(data.root.alert , function(i, value){
          console.log ('Dollar is : ' + value["$"]["src"]);
           console.log ('Time is : ' + value["time"][0]); 
           console.log ('ID is : ' + value["id"][0]); 
     });