jQuery .change仅适用于ID,而不是在我尝试类时

时间:2014-03-21 12:52:16

标签: javascript jquery

我有一个页面,其中包含从数据库导出的一些表格,我在表格的顶部和底部有一个下拉框,用户可以在其中选择要显示的行数。

当我只有一个时,我使用ID =" num",但现在我使用class =" num"两者都没有效果。

HTML

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

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

您的DOM元素有2个class属性,该属性无效。用空格分开你的课程:

<select class="form-control num">
  

class = cdata-list [CS]
此属性为元素分配一个类名或一组类名。可以为任意数量的元素分配相同的类名或名称。多个类名必须用空格字符分隔。

W3C doc

答案 1 :(得分:1)

<select class="form-control num">

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

答案 2 :(得分:1)

请尝试两次使用class属性:

class="form-control num"

答案 3 :(得分:1)

你的元素有2个class属性(只有第一个属性值为evalueted);而不是双重定义class,将它们设置在一个由空格分割的属性中:

<select class="form-control num">

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

  

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