Главная » Статьи » Web-программирование » JQuery

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

Как выбирать элементы, используя class или id?

Этот код выбирает элемент с id «myDivId». Поскольку id является уникальным, это выражение всегда выбирает один элемент.
Или ничего не выбирает, если элемента с таким id не существует.

Code
$('#myDivId');

Следующий код выбирает элемент(ы) с классом «myCssClass». Поскольку любое количество элементов может иметь этот класс, это выражение будет выбирать любое количество элементов.

Code
$('.myCssClass');

Выбранный элемент может быть присвоен переменной javascript, например так:

Code
var myDivElement = $('#myDivId');

Обычно выбранные элементы задействуются другими функциями jQuery:

Code
// получаем значение элемента
var myValue = $('#myDivId').val();
// устанавливаем значение элемента
$('#myDivId').val("hello world");

Выбирая элементы по имени класса, лучше использовать составной селектор.
Если отбор идет по id, то логично использовать именно id.

Code
$('#myDivId'); // лучше
$('div#myDivId'); // хуже
$('span.myCssClass'); // лучше
$('.myCssClass'); // хуже

Как проверить имеет ли элемент специфический класс?

Вы можете использовать метод is() (см. jQuery API: Traversing - обход DOM) вместе с подходящим селектором.

Code
if ( $('#myDiv').is('.pretty') )
$('#myDiv').show();

Заметьте, что этот метод позволяет Вам проверять также и другие вещи.

Например Вы можете проверить, скрыт ли элемент (при использовании :hidden селектора).

Code
if ( $('#myDiv').is(':hidden') )
$('#myDiv').show();

Иногда также бывает вопрос: имеет ли jQuery hasClass (см. jQuery API: Attributes - атрибуты) метод?

Заметьте, что hasClass был добавлен начиная с версии 1.2, чтобы обрабатывать наиболее распространенное использование метода is().

Code
$("div").click(function(){
if ( $(this).hasClass("protected") )
$(this)
.animate({ left: -10 })
.animate({ left: 10 })
.animate({ left: -10 })
.animate({ left: 10 })
.animate({ left: 0 });
});

В этом коде добавляется некая анимация для элемента(ов) с классом protected.
Обратите внимание, что имя класса тут записывается без точки.


Как проверить существование элемента?

Вы можете использовать свойство length набора jQuery, возвращенного селектором.

Code
if ( $('#myDiv').length )
$('#myDiv').show();

Заметьте, что вовсе не всегда необходимо проверять, существует ли элемент.
Следующий код показал бы элемент, если он существует, и не сделал бы ничего (и никакой ошибки бы не возникло), если это неверно.

Code
$('#myDiv').show();

Как определить состояние переключаемого элемента?

Вы можете проверить состояние, используя селекторы :visible или :hidden (см. jQuery API: Selectors - селекторы jQuery: фильтры контента, visibility-фильтры, фильтры атрибутов, child-фильтры).

Code
var isVisible = $('#myDiv').is(':visible');
var isHidden = $('#myDiv').is(':hidden');

Если Вы хотите воздейстовать на элемент, основываясь на его видимости, просто включите «:visible» или «:hidden» в выражение селектора.

Например:

Code
$('#myDiv:visible').animate({left: '+=200px'}, 'slow');

Как выбирать элементы, которые имеют специфические символы в id?

Например, это может быть обычным для некоторых фреймворков, генерирующих уникальные id, которые имеют специальные символы в них (такие как '.' или '[..]'). Проблема состоит в том, что эти символы имеют специальное значение в CSS.

Как поступать в таких случаях, смотрите на следующих примерах:

Code
$("#some.id") // это не работает!
$("#some\\.id") // а это работает!
$("#some[id]") // это не работает!
$("#some\\[id\\]") // а это работает!

Как разрешать/запрещать использование элемента?

Вы можете разрешать/запрещать элемент, устанавливая атрибут 'disabled' в значение 'disabled' (чтобы запретить использование элемента) или присвоить тому же атрибуту пустое значение », или же просто удалить атрибут 'disabled' (чтобы разрешить использование элемента).
Код может выглядеть примерно следующим образом:

Code
// запрещаем использование элемента #x
$("#x").attr("disabled","disabled");
// разрешаем  использование элемента #x
$("#x").attr("disabled","");
// разрешаем  использование элемента #x
$("#x").removeAttr("disabled");

Вы можете попробовать следующий пример:

Code
<select id="x" style="width:200px;">
  <option>Один</option>
  <option>Два</option>
  <option>Три</option>
</select>
<input type="button" value="Disable" onclick="$('#x').attr('disabled','disabled')"/>
<input type="button" value="Enable" onclick="$('#x').r

Как отметить/снять отметку с элемента checkbox?

*

Вы можете отметить/снять отметку c элемента checkbox, устанавливая атрибуту 'checked' значение 'checked' (чтобы отметить элемент) или установить атрибуту 'checked' пустое значение «»(чтобы снять отметку).

Пример кода приведен ниже:

Code
// отмечаем checkbox с id="c"
$("#c").attr("checked", "checked");
// снимаем отметку checkbox'а с id="c"
$("#c").attr("checked","");

Вы можете попробовать следующий пример:

Code
<label><input type="checkbox" id="c"/>это подопытный checkbox</label>
<input type="button" value="Check" onclick='$("#c").attr("checked","checked")'/>
<input type="button" value="Uncheck" onclick='$("#c").attr("checked","")'/>

Как получать значения выбранной опции элемента select?

Элементы select обычно имеют два значения, к которым нужно обратиться.
Это значение атрибута value соответствующего элемента option и его текстовое значение.

Для примера возьмем следующий код:

Code
<select id="myselect">
  <option value="1">Mr</option>
  <option value="2">Mrs</option>
  <option value="3">Ms</option>
  <option value="4">Dr</option>
  <option value="5">Prof</option>
</select>

Вот так можно получить значение атрибута value, выбранной опции:

Code
$("select#myselect").val();

А вот так можно получить текст выбранной опции:

Code
$("#myselect option:selected").text();

Вы можете попробовать следующий пример:
и посмотреть его исходный код:

Code
<select id="myselect">
  <option value="1">Mr</option>
  <option value="2">Mrs</option>
  <option value="3">Ms</option>
  <option value="4">Dr</option>
  <option value="5">Prof</option>
</select>
<input type="button" value="Get Value" onclick="alert($('#myselect').val())"/>
<input type="button" value="Get Text Value" onclick="aler

Автор: Геннадий (Gennady)
Источник: www.Linkexchanger.su

Категория: JQuery | Добавил: likbezz (26.05.2010)
Просмотров: 7547 | Теги: DOM, Script, JavaScript, API, jQuery, атрибуты, length, class.id, Attributes
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]