Методы jQuery и свойства DOM

Измените ваши входные данные на

<input type='radio' value='red' class='color-input' name='color'>
<input type='radio' value='blue' class='color-input' name='color'>

Между вашими сценариями разместите тег

// Get all the radio buttons by their class name(color-input)
var radioButtons = document.querySelectorAll(".color-input")

// For each of them, when their inputs are updated(clicked) apply their color (this.value) to the background
radioButtons.forEach(function(el) {
  el.oninput = function() {
    document.body.style.backgroundColor = this.value;
  };
});

Поскольку они являются входными данными, вам не нужно «щелкать» по ним, но обновлять их входные данные. Вот почему это «на входе», а не «на клике»

12
задан 17 February 2009 в 16:24
поделиться

4 ответа

Вам будет нужно к .get (0) результат для получения DOM-готового объекта.

var myBox = $("div#myBox");
alert(myBox.get(0).id); // "myBox"

Считайте "Очищение Далеко Обертка jQuery и Нахождение Массива" Cody Lindley


Ре:Править: .is() не собственный метод JavaScript. Когда Вы работаете .get(0), Вы больше не отделываетесь объекта jQuery, поэтому Вы не можете ожидать выполнять методы jQuery от него.

Если Вы хотите работать .is() на определенном результате используйте :eq(index) selector, или .eq(index) method:

$("div:eq(1)").is(":checked"); // gets second div
$("div").eq(1).is(":checked"); // gets second div

Ре: редактирование № 2

Bob, действительно необходимо создать новые вопросы, вместо того, чтобы спросить все больше здесь.

Преобразование dom элемента к объекту jQuery сделано путем передачи его в селекторе:

var myBox = document.createElement("div");
var myBoxJQ = $(myBox);

Assinging This к переменной. Зависит от того, когда Вы делаете это. Если "этим" Вы обращаетесь к объекту jQuery, то this будет объект jQuery. Можно преобразовать его следующим this с .get(0).

Когда this относится к объекту jQuery, Вы не должны переносить его в $ (). Это избыточно.

И наконец, $elemSel.children('td').nodeName может быть сделан как это: $elemSel.children('td')[0].nodeName или $elemSel.children('td').get(0).nodeName, где этот 0 является индексом который объект к доступу.

24
ответ дан 2 December 2019 в 05:42
поделиться

Существует также ярлык для, добираются (индексируют) функцию:

$(selector)[0].nodeName

Soruce: http://docs.jquery.com/Core/get#index

2
ответ дан 2 December 2019 в 05:42
поделиться

Поскольку может быть больше чем одно соответствие в селекторах jQuery, необходимо вытащить элементы из "массива".

Можно использовать получить метод для возврата единственного элемента DOM или массива или элементов DOM.

например:

var elims = $("div").get();
for(var i in elims)
    alert(elims[i].nodeName);

Править:

$elemSel.get(0).is(':checked') не будет работать, потому что Вы получаете Объект DOM и затем пытаетесь использовать функции jQuery на нем. Если Вы хотите получить единственное использование элемента jQuery eq.

$elemSel.eq(0).is(':checked');
1
ответ дан 2 December 2019 в 05:42
поделиться

Чтобы вызвать собственный метод DOM, вы можете использовать get (index). Или, если вы хотите использовать метод объекта jQuery, вам следует обернуть собственный элемент DOM с помощью jQuery, который преобразует элемент DOM в объект jQuery, чтобы все методы были доступны. http://www.linxinshan.com/?p=339

0
ответ дан 2 December 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: