функция обрезки jQuery не работает в IE7?

Я пытаюсь назвать jQuery text() функционируйте и прокрученный это trim() функция для удаления всего запаздывания и ведущего пробела. Кажется, работает отлично в Firefox, однако, не работает в IE7 (отказывается удалять пространство, запаздывающее в конце).

Какие-либо идеи?! Возможно, regex решение?

10
задан YourMomzThaBomb 23 March 2010 в 21:24
поделиться

4 ответа

Итак, вот суть происходящего. У меня был текст в элементе span, а после текста была гиперссылка/изображение, на которое пользователь мог нажать, чтобы удалить текст со строки, на которой он находился (см. код ниже). Однако я поставил   после текста элемента span (в тексте гиперссылки), чтобы добавить немного прокладки между текстом span и изображением "delete". Поэтому, даже если я обращался к тексту элемента и обрезал $.trim($(this).parent().text());, он все равно включал этот пробел в конце! Как только я удалил этот лишний пробел, все заработало нормально. До сих пор не знаю, почему $.trim() не справился с этим?!

<div>
  <span>
    <strong>SomeText</strong>
  </span>
  <a href="javascript:void(0);" onclick="removeMe();">&nbsp;
    <img src="delete.png" width="15" height="15" border="0" name="imgRemove" />
  </a>
</div>
5
ответ дан 3 December 2019 в 16:09
поделиться

Да, у меня есть идея. Пробел в конце не находится в элементе, для которого вы вызываете функцию text (). Это может произойти в IE, потому что он обрабатывает пробелы иначе, чем firefox, и предоставит ему свои собственные элементы, тогда как firefox не будет. Это всего лишь догадка, потому что ваш вопрос не дает повода для продолжения.

0
ответ дан 3 December 2019 в 16:09
поделиться

jquery использует / ^ \ s + | \ s + / g в своем методе обрезки-

Любой конечный пробел должен быть добавлен после его возврата .

Это может зависеть от того, когда вы его читаете - попробуйте предупредить значение непосредственно из операции обрезки. Если это читается правильно, пространство добавляется тем, что вы делаете рядом со строкой.

Если обрезка действительно возвращается с завершающим пробелом, используйте text.replace (/ ^ \ s + | \ s + / g, '').

0
ответ дан 3 December 2019 в 16:09
поделиться

вы, скорее всего, забыли о цепочке jquery ...

попробуйте это

$ ('# selector'). Trim ($ (' #selector '). text ())

не поленитесь с

$ (' # selector '). text (). trim (); // это неправильно ...

EDIT

или, как @Laserson упростил его еще лучше, с помощью $. Trim ($ (selector) .text ());

21
ответ дан 3 December 2019 в 16:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: