Измените ваши входные данные на
<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;
};
});
Поскольку они являются входными данными, вам не нужно «щелкать» по ним, но обновлять их входные данные. Вот почему это «на входе», а не «на клике»
Вам будет нужно к .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 является индексом который объект к доступу.
Существует также ярлык для, добираются (индексируют) функцию:
$(selector)[0].nodeName
Поскольку может быть больше чем одно соответствие в селекторах 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');
Чтобы вызвать собственный метод DOM, вы можете использовать get (index). Или, если вы хотите использовать метод объекта jQuery, вам следует обернуть собственный элемент DOM с помощью jQuery, который преобразует элемент DOM в объект jQuery, чтобы все методы были доступны. http://www.linxinshan.com/?p=339