我一直致力于选择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
答案 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");