Javascript 为什么.next()给我';未定义';

Javascript 为什么.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

为什么.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" 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()
的工作原理与您预期的一样,只需使用其他方法测试是否已选中。