![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: нет Всего: 89 |
Есть <div class="divclass" id='dicid'>{какой-то текст}</div>. Нужно написать функцию которая определяла бы есть ли заданый текст внутри div-a или нет. Если есть - вернуть его позицию, если нет - вернуть 0. Желательно кроссбраузерность.
Это сообщение отредактировал(а) Sunvas - 16.5.2007, 23:08 -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 10 Всего: 20 |
Проверил в ИЕ6, ФФ1.5 и Опера 9.01 |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Burrr, ты зря воспринял "спецификацию заказчика" слишком близко к сердцу. Он просто не подумал, что позиция найденного текста может быть нулевой. Как он в таком случае будет определять, вернули ли ему ноль потому что строка не найдена, или потому что она стоит в самом начале?
В итоге ты написал функцию, с которой неизвестно как работать, да еще к тому же дважды вычисляешь indexOf() в случае нахождения строки. Мораль: никогда не принимайте требования заказчика за чистую монету. Чаще всего они сами не представляют, чего хотят. Добивайтесь от них, чтоб было как в анекдоте: "ты не умничай, ты пальцем покажи" -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 10 Всего: 20 |
На основании этого кода всё доработать можно легко, основное и так понятно.
Stampede, почему неизвестно как? Что хотели, то и получили. Если хотим, можем получать просто return divText.indexOf(text); А от 2-х вызовов indexOf еще никто не умирал ;) Но за совет спасибо, то что я пропустил возврат нулевой позиции однозначно косяк. |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Мой пойнт был: из функции возвращать непосредственно результат divText.indexOf(text), а
Sunvas'у объяснить в популярной форме, что это для его же блага А вот это уже отнюдь не безобидное заявление. Тут уже пахнет мировоззренческими разногласиями. И я прямо скажу: с таким подходом недолго и прокидаться. Безо всяких смайлов. Так что предлагаю задуматься. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: нет Всего: 89 |
Stampede, нулевой это как? Или в JavaScript-e все считается с 0? Просто привык все считать с 1. Burrr, +1. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Burrr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 10 Всего: 20 |
Sunvas, да, в JavaScript первое вхождение стоящее в начале строки имеет нулевую позицию, поэтому лучше юзай такой вариант:
Если нода пустая или совпадений нет, то вернется -1. Если совпадение есть, то вернется его позиция. Stampede, к таким вещам надо относится проще и дело не в мировозрении. При написании той строки я выбирал между двумя вариантами:
И выбрал первый, чтобы не плодить лишнюю строчку кода, т.к. на скорость работы скрипта вычисление 2-х indexOf особо не влияет. Вообщем-то совсем не влияет. Если бы вместо indexOf стоял стояла функция или более медленные вычесления, был бы выбран второй вариант написания. Всё. |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |