为什么.next()返回事件's对象本身?

Why does .next() returns event's object itself

本文关键字:对象 next 返回 事件 为什么      更新时间:2023-09-26

我一直在研究选择的onchagne事件处理程序,该处理程序检查在它旁边的块中是否有另一个选择,并相应地插入一个新的选择元素或更新现有的。我已经知道如何检查是否存在其他选择,即使用next.().is('slecect'),但我想知道为什么.next()函数在自己使用时返回事件的对象本身在以下代码中:

<form name="form" action="" method="post">
    <select name="Category" title="Select Category">
        <option value="1">option 1</option>
        <option value="2">option 2</option>
    </select>
</form>

$('select').change(function(e){
    var $target = $(e.target);
    console.log($target.next('select'));        
});

检查小提琴

我想知道为什么.next()函数在自己使用时在以下代码中返回事件的对象本身

它不返回一个事件对象,它返回一个jQuery对象。这个jQuery对象要么有一个单独的select元素,要么是空的,这取决于下面的兄弟是否为select元素。您可以通过查看length:

来判断
console.log($target.next('select').length);

…这将是0(没有"next"[紧跟兄弟]元素,或者它不是select)或1(有并且它是)。

正确检查:

$target.next().is("select");