Tengo este codigo y listo los productos con un array JSON que lo traigo con php usando AJAX..

Código Javascript :

$(document).ready(function() {
 
listar();

var filtrado;  
 //si escribimos en el campo nombre
    
        $("#nombre").keyup(function() {
        var nombreBusqueda=$("#nombre").val();
       
            filtrado=$.grep(content,function(element){
                      return content['nombre'] ^= nombreBusqueda;
                                            });
      console.log(filtrado);   
          for (var i = 0; i < filtrado.length; i++) {
          
                var newRow =
                    "<tr>" +
                    "<td>" + filtrado[i].idproducto + "</td>" +
                    "<td>" + filtrado[i].nombre + "</td>" +
                    "<td>" + filtrado[i].marca + "</td>" +
                    "<td>" + filtrado[i].categoria + "</td>" +
                    "<td>" + filtrado[i].precio + "</td>" +
                    "</tr>";
                $(newRow).appendTo("#resultado");                 
       
    
               
            }
           
   
     
      });
});
var content;
var data; 
  
//click en fila de producto

 $("#resultado").on("click", function(event){

      var id= $(this).find("#ido").html();   
     alert(id);
    
 });


function listar(){
    tipofiltro="todos";
    $.ajax({
            type: "POST",
            url: "../gestionweb/includes/php/filtroP.php",
            data: { "tf": tipofiltro}, 
            dataType: "html",
            error: function(){
                alert("error petición ajax");
            },
            success: function(data){
                
           content=JSON.parse(data);  
            for (var i = 0; i < content.length; i++) {
          
                var newRow =
                    "<tr>" +
                    "<td>" + content[i].idproducto + "</td>" +
                    "<td>" + content[i].nombre + "</td>" +
                    "<td>" + content[i].marca + "</td>" +
                    "<td>" + content[i].categoria + "</td>" +
                    "<td>" + content[i].precio + "</td>" +
                    "</tr>";
                $(newRow).appendTo("#resultado");                 
       
    
               
            }
        }
      
        });
        
         
        };
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


Quise crear una variable global para usar la funcion grep en content..Pero filtrado queda vacio.a que se debe?