ФорумПрограммированиеJavaScript → jQuery - как выбрать элемент с условием?

jQuery - как выбрать элемент с условием?

  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 12 марта 2009 г. 3:02

    Привет. Изучаю эту библиотеку. Допустим есть список такой:

    <label>Язык текста:</label>
    <select name=\"article_language\">
    <option value=\"0\">Русский </option>
    <option value=\"1\">Украинский</option>
    <option value=\"2\">Английский</option>
    </select><br/>

    Как выбрать функцией $() элемент <option> с значением value равным допустим 1, который находится между <select> с атрибутом name равный  "article_language"?
  • adw0rd

    Сообщения: 22943 Репутация: N Группа: в ухо

    Spritz 12 марта 2009 г. 3:21, спустя 19 минут 24 секунды

    Что-то типа того

    $("select[name='article_language'] > option[value=1]")


    http://docs.jquery.com/Selectors
    http://anton.shevchuk.name/javascript/jquery-for-beginners/
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 12 марта 2009 г. 3:28, спустя 7 минут

    спасибо. пытаюсь изменить атрибут еще, но не работает почемуто, я ведь все правильно написал?

    <script type=\"text/javascript\">
    $('select[name='article_category'] > option[value='$category']').attr('selected','selected');
    </script>
  • adw0rd

    Сообщения: 22943 Репутация: N Группа: в ухо

    Spritz 12 марта 2009 г. 3:41, спустя 12 минут 39 секунд

    smackthat,
    $category
    что это?
    + вам надо экранировать кавычки, либо использовать двойные
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 12 марта 2009 г. 3:47, спустя 6 минут 10 секунд

    Экранизировал так, всеравно не работает:

    <script type=\"text/javascript\">
    $(\"select[name=\"article_category\"] > option[value=\"$category\"]\").attr(\"selected\",\"selected\");
    </script>


    $category - это целове число, которое определяет категорию. Короче это просто другой список, где выбирается не язык, а категория статьи, типа Политики, Спорт и тд.

    И еще, я вставляю скрипт в середине <body> сразу после списка категорий. Может из-за этого оно не работает?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 12 марта 2009 г. 3:48, спустя 50 секунд

    $(\"select[name='article_category'] > option[value='$category']\").attr('selected','selected');
  • Trej Gun

    Сообщения: 5302 Репутация: N Группа: в ухо

    Spritz 12 марта 2009 г. 3:51, спустя 2 минуты 57 секунд

    а помоему генерировать яваскрипт из пхп - хуйня
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 12 марта 2009 г. 3:52, спустя 1 минуту 20 секунд


    $(\"select[name='article_category'] > option[value='$category']\").attr('selected','selected');

    хо! заработало!! спасибо! а почему? не понимаю. Почему тогда 'selected' не нужно экранизировать?
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 12 марта 2009 г. 3:53, спустя 1 минуту 9 секунд


    а помоему генерировать яваскрипт из пхп - хуйня

    ок, а как решить лучше мою проблему, правильнее?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 12 марта 2009 г. 3:55, спустя 1 минуту 32 секунды

    аргумент у $() это строка, а не выражение на js
    select[name='article_category'] > option[value='$category']
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 12 марта 2009 г. 3:57, спустя 2 минуты 27 секунд

    так в jave же строки можно указывать как ' так и "
    или ' - это чтото другое?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 12 марта 2009 г. 4:00, спустя 2 минуты 23 секунды

    если юзаеш " или ', то в них можно не экранировать ' и " соответственно
    "string 'test'"
    'string "test"'

    'string\'test\''
    "string\"test\""
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 12 марта 2009 г. 4:08, спустя 8 минут 4 секунды

    мозги потекли. непонял почему так работает:

    $(\"select[name='article_category'] > option[value='$category']\").attr('selected','selected');

    а так нет:

    $('select[name='article_category'] > option[value='$category']').attr('selected','selected');


  • Trej Gun

    Сообщения: 5302 Репутация: N Группа: в ухо

    Spritz 12 марта 2009 г. 4:11, спустя 3 минуты 16 секунд

    smackthat, тебе уже сказали что javascript и java совершенно разные вещи

    ну есть варианты от создания конфигурационного массива в

    var datafromServer = {article_language:'ru'}

    до засовывания всего этого в куки
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 12 марта 2009 г. 4:11, спустя 19 секунд

    какая разница? работает - значит все ок xD

Пожалуйста, авторизуйтесь, чтобы написать комментарий!