为什么.next()给我’undefined’
为什么.next()返回’undefined’? http://jsfiddle.net/radek/sD6JB/2/
HTML
javascript + jQuery
$(document).ready(function(){ $('button[type=button]').click(function(){ var params = $(this).val(); document.getElementById("results").innerHTML+= "
"+params.split('|')[0]+" - " + params.split('|')[1]+" - " + $(this).next().checked; }); });
jQuery对象没有checked
属性。
你可以……
(a)用[0]
或get(0)
标本机DOM元素。
(b)访问prop('checked')
(> =仅限jQuery 1.6。)
(c)使用is(':checked')
。
那是因为你在jQuery对象而不是DOM元素上调用.checked
。 如果你想调用.checked
你需要从jQuery集合中获取DOM元素。
只需将该行更改为以下内容即可
$(this).next().get(0).checked
固定小提琴: http : //jsfiddle.net/sD6JB/3/
它是 undefined
因为当你在click
函数中时$(this)
set只保存一个元素,在其上定义click
属性。所以集合中没有下一个兄弟。
说明:
$('button[type=button]')
包含type=button
属性的所有button
元素。在它们上定义clickhandler时,为每个创建一个函数,在该函数中, this
将是您定义事件处理程序的元素。当你使用 $(this)
你创建了一个jQuery包装器集,它只包含这个元素。.next()
用于选择集合中的下一个兄弟,但您的集合只有一个元素。
解:
$(本).siblings( “输入”)是。( “:勾选”)
顺便说一下,使用checked也是一个问题,但是你的初始未定义问题的原因是上面的。 请改用.is(":checked")
。