Функция jQuery trim не работает в IE7?
Я пытаюсь вызвать функцию jQuery text()
и запустить ее через функцию trim()
, чтобы удалить все конечные и ведущие пробелы. Кажется, что отлично работает в Firefox, однако он не работает в IE7 (отказывается удалять пробел в конце).
Любые идеи?! Может быть, регулярное выражение?
Ответы
Ответ 1
Итак, вот суть происходящего. У меня был некоторый текст в элементе span, и после этого текста была гиперссылка/изображение, которое пользователь мог щелкнуть, чтобы удалить текст из строки, на которой он был включен (см. Код ниже). Однако после текста элемента span (в тексте гиперссылки) я поместил
, чтобы поместить немного пробела между текстом диапазона и изображением "удалить". Так что, хотя я получал доступ к тексту элемента и обрезке $.trim($(this).parent().text());
, он все равно включал бы это пространство в конец! Как только я удалил это дополнительное пространство, все сработало нормально. По-прежнему не знаю, почему $.trim()
не позаботится об этом, хотя?!
<div>
<span>
<strong>SomeText</strong>
</span>
<a href="javascript:void(0);" onclick="removeMe();">
<img src="delete.png" width="15" height="15" border="0" name="imgRemove" />
</a>
</div>
Ответ 2
вы, скорее всего, забыли о цепочке jquery...
попробуйте это
$('#selector').trim($('#selector').text())
не ленитесь
$('#selector').text().trim();//this is wrong...
ИЗМЕНИТЬ
или как @Laserson упростил его еще лучше, $.trim($(selector).text());
Ответ 3
Да, у меня есть идея. Пробел в конце не находится в элементе, на который вы вызываете функцию text(). Это может произойти в IE, потому что он обрабатывает пробелы иначе, чем firefox, и даст ему свои собственные элементы, где firefox не будет. Это просто догадка, потому что ваш вопрос не дает много времени.
Ответ 4
jquery использует /^\s + |\s +/g в своем методе обрезки -
Любое конечное пространство должно быть добавлено после его возврата.
Это может зависеть от того, когда вы его прочитали, - попытаться предупредить значение непосредственно из операции обрезки.
Если это правильно читается, пространство добавляется к тому, что вы делаете рядом со строкой.
Если обрезка действительно возвращается с конечным пространством, используйте text.replace(/^\s + |\s +/g, '').