Сравнение строк в JQuery? - PullRequest
3 голосов
/ 07 июля 2011

Я работаю над JQuery, упомянутым ниже

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();

});

Таким образом, основываясь на выбранной опции тега Select, Jquery будет скрывать соответствующие столбцы в таблице. Все работает нормально, кроме одного сценария, когда columnName = "List Price" не работает. Если я специально упомяну «Прайс-лист» в

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

работает нормально. Что-то мне не хватает?

Ниже приведен HTML-код для раскрывающегося списка

<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>

и ниже код для 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>

похоже, вместо пробела он показывает &nbsp; в firebug, какой-нибудь обходной путь?

Спасибо, Nitesh

Ответы [ 3 ]

2 голосов
/ 08 июля 2011

неразрывный пробел (U + 00A0 Unicode, 160 десятичных знаков, &nbsp;) не совпадает с пробел (U + 0020 Unicode, 32 десятичных знака),Что ж, оба они кажутся «пробелами», но это абсолютно разные символы.

Один из возможных способов решения этой проблемы заключается в том, что во время проверки вы преобразуете неразрывные пробелы в простые пробелы:

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

jsFiddle Demo

1 голос
/ 07 июля 2011

лучше использовать : содержит ()

 $("div:contains('List Price')")

также см. jQuery.contains

1 голос
/ 07 июля 2011

У вас есть List&nbsp;Price в вашем HTML, который не равен "Прайс-лист" в коде.

...