Cómo encontrar el ancho del niño ul li a

Tengo la siguiente lista desordenada envuelta en un div como abajo

 

Necesito encontrar el ancho de cada ancla que sea anchor1, anchor2, anchor3 tags ancho en el hover del hogar. Tengo el siguiente código que parece no funcionar.

  $(function () { $("#menuwrapper ul li").hover(function () { var maxWidth = 0; $(this).find("ul li a").each(function () { if (this.width > maxWidth) maxWidth = this.width; }); $("#menuwrapper ul li ul li a").css("width", maxWidth); }); }); 

Gracias por la ayuda por adelantado

 $(function() { var maxWidth = 0; $("#menuwrapper ul li:first-child").hover(function() { var $anchors = $(this).find("ul li a"); $anchors.each(function() { if ($(this).width() > maxWidth) { maxWidth = $(this).width(); } }); $anchors.width(maxWidth); }); }); 

Esto hace que su hover y ajuste el ancho

 $(function () { // First we detect and set the widths, then we hide the subMenu var $maxWidth = 0, $anchors = $("#menuwrapper ul li ul li a"); $anchors.each(function () { var $this = $(this); if ($this.width() > $maxWidth) { $maxWidth = $this.width(); } }); $anchors.css('width', $maxWidth) .closest('ul') .hide(); // Then we add the hover actions $("#menuwrapper ul li").hover( function() { $(this).find("ul").slideDown(); }, function() { $(this).find("ul").slideUp(); } ); }); 

Esto podría optimizarse mejor, pero pensé que de esta manera es más explicativo.

Tu $this debería ser $(this) . O necesitas establecer var $this = $(this); en scope.