Javascript 为什么.next()给我';未定义';
为什么.next()返回“undefined” htmlJavascript 为什么.next()给我';未定义';,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,为什么.next()返回“undefined” html <button value="login|basic" class="square_button button_background" type="button"> run </button> <input name="restore" title="restore before ant run" type="checkbox"> <button value="test|advanced" cl
<button value="login|basic" class="square_button button_background" type="button"> run </button>
<input name="restore" title="restore before ant run" type="checkbox">
<button value="test|advanced" class="square_button button_background" type="button"> run </button>
<input name="restore" title="restore before ant run" type="checkbox">
<button value="best|4444" class="square_button button_background" type="button"> run </button>
<input name="restore" title="restore before ant run" type="checkbox">
<div id='results'/>
运行
跑
跑
javascript+jQuery
$(document).ready(function(){
$('button[type=button]').click(function(){
var params = $(this).val();
document.getElementById("results").innerHTML+=
"<BR>"+params.split('|')[0]+" - "
+ params.split('|')[1]+" - "
+ $(this).next().checked;
});
});
$(文档).ready(函数(){
$('button[type=button]')。单击(function(){
var params=$(this.val();
document.getElementById(“结果”).innerHTML+=
“
”+参数拆分(“|”)[0]+“-”
+参数拆分(“|”)[1]+“-”
+$(this).next()。已选中;
});
});
jQuery对象没有选中的属性
你可以
(a) 使用[0]
或get(0)
为本机DOM元素下标
(b) 访问prop('checked')
(>=仅限jQuery 1.6。)
(c) Use是(':checked')
这是因为您在调用jQuery对象而不是DOM元素上的.checked
。如果要调用.checked
,则需要从jQuery集合中取出DOM元素
只需将该行更改为下面的行即可
$(this).next().get(0).checked
固定小提琴:它是未定义的
,因为当您在单击
函数$(此)
集仅包含一个元素,您可以在该元素上定义单击
属性。因此,在这个集合中没有下一个兄弟姐妹
说明:
$('button[type=button]')
保存具有type=button
属性的所有button
元素。
当您在它们上定义clickhandler时,您将为每个元素创建一个函数,在该函数中,这将是您定义事件处理程序的元素。
使用$(this)
时,将创建一个只包含此元素的jQuery包装集。
.next()
用于选择集合中的下一个同级,但集合只有一个元素
解决方案:
$(this.sides(“输入”)为(“:选中”)
顺便说一句,使用checked也是一个问题,但是您最初未定义的问题的原因是上面提到的。
使用.is(“:checked”)
。首先为什么要使用
标记?按钮就是按钮。“按钮就是按钮。”哈哈@BoltClock按钮的默认类型
属性为提交
。为什么?因为这些都是很好的答案,我只花了2分钟的时间就发布了我的问题……我不明白这个答案:-)效果很好,谢谢。现在我甚至明白了你的意思:-)对不起,我的解决方案是错误的,我只是测试了一下(删除了错误的部分。.next()
的工作原理与您预期的一样,只需使用其他方法测试是否已选中。