Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В чем ошибка применения функции (https://javascript.ru/forum/misc/50280-v-chem-oshibka-primeneniya-funkcii.html)

borus 19.09.2014 17:10

В чем ошибка применения функции
 
На странице пытаюсь, чтобы сработала ветка условного оператора(файл abv347.js) с такой проверкой:
if(String(window.location).indexOf("-detail") > 0 && $(".addtocart-area").is("select")){...

то есть ветка(условие) должна срабатывать, когда страница
1. содержит "-detail" в адресе
2. содержит элемент html-разметки <select>, который находится внутри элемента с классом addtocart-area

Видимо неправильно применил функцию .is. В чём ошибка?

Viral 19.09.2014 17:56

содержит элемент html-разметки <select> с классом addtocart-area

samber 19.09.2014 19:04

1. indexOf возвращает -1 если подстрока не найдена. В условии используйте >= 0
2. Напишите так $('.addtocart-area select').length
В итоге:
if(String(window.location).indexOf("-detail") >= 0 && $('.addtocart-area select').length)

Erolast 19.09.2014 19:27

Для indexOf есть такой трюк:
var string = "123";
if (~string.indexOf("1"))
  alert("Нашел! Нашел!");

http://learn.javascript.ru/bitwise-o...%D0%BD%D0%B0-1
Цитата:

Видимо неправильно применил функцию .is. В чём ошибка?
Метод is в данном случае вернет true, если хотя бы один из элементов с классом addtocart-area является элементом с именем тега select.

petya 19.09.2014 23:20

Цитата:

Сообщение от borus
(String(window.location).indexOf("-detail") > 0

вот эту трахомудию можно сократить до /-detail/.test(location)

Aetae 19.09.2014 23:53

petya,
~location.href.indexOf("-detail")


Часовой пояс GMT +3, время: 09:08.