jQuery .change只适用于ID,而不是当我尝试类

jQuery .change only works on ID, and not when I try class

本文关键字:change 适用于 ID jQuery      更新时间:2023-09-26

我有一个从数据库导出的一些表的页面,并且我在表的顶部和底部有一个下拉框,用户可以选择显示多少行。

当我只有一个时,我使用ID="num",但现在我在两个上都使用class="num",它不起作用

<select class="form-control" class="num">
   <option value="10">10</option>
   <option value="20">20</option>
   <option value="50">50</option>
   <option value="100">100</option>
</select>
jQuery

$('.num').change(function () {
   window.location.href = "LINK HERE/"+this.value;
});

我该如何解决这个问题?

你的DOM元素有2个class属性,这是无效的。用空格分隔类:

<select class="form-control num">

class = cdata-list [CS]
此属性为元素指定一个类名或一组类名。任何数量的元素都可以被赋予相同的类名。多个类名必须用空白字符分隔。

W3C文档

<select class="form-control num">
$(document).on('change','.num',function () {
   window.location.href = "LINK HERE/"+this.value;
});

请尝试一下,因为您使用了两次class属性:

class="form-control num"

你的元素有2个class属性(只有第一个会被计算);而不是双定义class,将它们设置在一个由空格分隔的属性中:

<select class="form-control num">

两次使用相同的属性是无效的HTML,浏览器会执行错误恢复,这里有很好的解释。

当用户代理离开属性名状态时(以及之前)发出标记令牌(如果合适的话)、完整的属性名称必须与同一令牌上的其他属性进行比较;如果有那么,令牌上是否已经有一个具有完全相同名称的属性这是一个解析错误,必须同时删除新属性与与它相关联的值(如果有的话)。