2017-05-05 237 views
0

以下this post,我试图绑定一个keydow事件处理程序的所有动态元素的ID开始id_phone-并完成-value。例如,id_phone-3-value应该算术,而id-phone-3-value不应该。动态选择元素使用jQuery多元选择器属性

要做到这一点,我试图想出下面的代码:

$(document).on('keydown', '[id^=id_phone-_][id$=_-value]', function(){ 
    console.log('test'); 
}); 

...,不幸的是,没有为我工作。我在这里做错了什么?

回答

1

问题是您的选择器中的_。您的选择器将匹配id_phone-_3_-value之类的内容,但您想要匹配的ID在数字周围没有下划线。

$(document).on('keydown', '[id^=id_phone-][id$=-value]', function(){ 
 
    console.log('test'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
This should trigger: <input id="id_phone-3-value" type="text"><br> 
 
This should not trigger: <input id="id-phone-3-value" type="text">