Estoy trabajando en JQuery se mencionan a continuación

jQuery("select[name='hideLineItemColumns_quote'] option:selected").each(function () {

    var columnName = $.trim($(this).text());


    $('thead.line-item-grid-header tr th').filter(function () {

        return $.trim($('div', this).text()) == columnName;
    }).hide();

});

Así que basado en la selección de la opción de la etiqueta < Select>, Jquery ocultar respectivas columnas en una tabla. Todo funciona bien, excepto un escenario, cuando columnName = «Precio de Lista» no funciona. Si me menciona específicamente a la «Lista de Precios» en

return $.trim($('div', this).text()) == "List Price";

funciona bien. Hay algo que me estoy perdiendo?

A continuación está el código html para seleccionar desplegable

<select name="hideLineItemColumns_quote" multiple="true" style="width:100%;" size="4" class="form-input ">
<option value="__part_desc">Description</option>
<option value="__part_number">Product</option>
<option value="_costEa_line">Cost</option>
<option value="_listPriceEach_line">List&nbsp;Price</option>
</select>

y a continuación es el código para thead

<thead class="line-item-grid-header">
    <tr>
        <th align="center" class="list-label ">
            <div style="overflow:hidden;width:60px;">List Price</div>
        </th>
    </tr>
</thead>

parece que en lugar de un espacio que muestra &nbsp; en firebug, alguna solución ?

Gracias,
Nitesh

  • usted debe publicar fragmento de html también, no se tiene suficiente información.
  • Acabo de actualizar mis comentarios
InformationsquelleAutor Nitesh | 2011-07-07

3 Comentarios

  1. 2

    La espacio de no separación (U+00A0 Unicode, 160 decimal, &nbsp;) no es el mismo que el carácter de espacio (U+0020 Unicode, 32 decimal). Así, ambos de ellos parece ser un «espacio», sino que son absolutamente diferentes personajes.

    Una posible solución es que para el momento de la comprobación de convertir los espacios de no separación en espacios simples:

    $.trim($('div', this).text()) == columnName.replace(/\u00A0/g, ' ')

    jsFiddle Demo

  2. 1

    Tiene List&nbsp;Price en el HTML que no es igual a «Precio de Lista» en el código.

    • sí..me di cuenta de que..¿hay alguna solución para eso?
    • También traté de hacer esto var columnName = $.trim($(this).text().replace('&nbsp;',' ')); , aún sin suerte
    • Puedes publicar un jsfiddle?
    • Este jsfiddle es lo que yo quiero hacer, jsfiddle.net/efh4a/9, pero el Precio de Lista sigue apareciendo. Pero Si he de definir explícitamente Lista de Precios funciona jsfiddle.net/efh4a/8
    • Esto funciona ahora: jsfiddle.net/efh4a/14. Nota: he cambiado a .html() para columnName

Dejar respuesta

Please enter your comment!
Please enter your name here