Пожалуйста, объясните это различие в кроссбраузерной строке.длина

#javascript #jquery

#javascript #jquery

Вопрос:

Я запускаю этот код в Firefox версии 6.0.2 и IE7. В Firefox я выбираю переключатель. Затем нажмите test . Я получаю строку длиной 10. В IE7 я получаю строку длиной 9.

 <script type="text/javascript">
    function TestMethod() {

        var name;
        var address;
        var city;
        var state;
        var zip;

        var indexor = 0;
        $('input[name=radioBtnSet1]:checked').parent().siblings().each(function (i, cell) {
            if (indexor === 0)
                name = $(cell).text();
            else if (indexor === 1)
                address = $(cell).text();
            else if (indexor === 2)
                city = $(cell).text();
            else if (indexor === 3)
                state = $(cell).text();
            else if (indexor === 4)
                zip = $(cell).text();

            indexor  ;
        });

        alert(name.length);
        alert('FACILITY NAME: '   '|'   name   '|');
    }
</script>

<input id="runTest" onclick="javascript:TestMethod();" type="button" value="Test"/>

<table id="someTable">
<thead>
    <tr>
        <th></th>
        <th>Header</th>
        <th class="DisplayNone"></th>
        <th class="DisplayNone"></th>
        <th class="DisplayNone"></th>
        <th class="DisplayNone"></th>
        <th>Date</th>
    </tr>
</thead>
<tbody>
<tr>
    <td><input type="radio" value=" HHH VALUE" name="radioBtnSet1" /></td>
    <td style="text-align: left;"> HHH VALUE</td><td class="DisplayNone">200 SOME STREET DR</td>
    <td class="DisplayNone">CITY</td><td class="DisplayNone">TX</td>
    <td class="DisplayNone">75007-3726</td>
    <td style="padding-left: 1em;">9/30/2011</td>
</tr>
</tbody>
<tfoot>
    <tr>
        <th></th>
        <th></th>
        <th class="DisplayNone"></th>
        <th class="DisplayNone"></th>
        <th class="DisplayNone"></th>
        <th class="DisplayNone"></th>
        <th></th>
    </tr>
</tfoot>
</table>
  

Почему? Как я могу сделать их эквивалентными?

Комментарии:

1. Вам нужен пробел с префиксом «HHH»?

2. Вам придется намного больше разобраться в этом, прежде чем люди смогут вам с пользой помочь, в коде в вопросе много несвязанных ошибок.

3. Да, интервал является обязательным. При необходимости можно уменьшить позже. В дороге

4. Ну, в этом-то и проблема. Браузеры расходятся во мнениях о том, что возвращать для текстового содержимого, когда есть начальный (и, возможно, конечный) пробел.

5. Какой у вас тип документа? Похоже, IE пытается исправить ваше ведущее пространство здесь.

Ответ №1:

Как видно из комментариев на этой странице, проблема связана с text функцией jQuery. В IE 7 он не сохраняет начальные и конечные пробелы. В FF это так. Отсюда разные строки и разные длины в IE 7 и FF.

Если вам нужен пробел, попробуйте использовать amp;nbsp; вместо него.