为什么.next()返回事件的对象本身

时间:2014-03-25 09:19:39

标签: javascript jquery

我一直致力于选择onchagne事件处理程序,该处理程序检查其旁边的块中是否有另一个select,并相应地插入一个新的select元素或更新现有的元素。我已经找到了如何检查其他选择是否存在,即使用next.().is('slecect'),但是我想知道为什么.next()函数在单独使用时会返回事件&#39}。 s对象本身在以下代码中:

<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'));        
});

检查fiddle

2 个答案:

答案 0 :(得分:1)

  

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

它不返回事件对象,它返回一个jQuery对象。该jQuery对象将包含一个select元素,或者为空,这取决于以下兄弟是否为select元素。您可以通过查看length

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

...这将是0(没有&#34;下一个&#34; [紧随兄弟之后]元素,或者它不是select)或{{ 1}}(确实如此)。

答案 1 :(得分:0)

使用以下方法正确检查:

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