Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery选择器在ID的末尾获取ID_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript JQuery选择器在ID的末尾获取ID

Javascript JQuery选择器在ID的末尾获取ID,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有一些代表按钮的div,所有按钮都是以下ID结构: Button_<id> 有没有一种方法可以将单击侦听器附加到所有按钮并在侦听器中获取其ID?我提出了以下解决方案,但我不认为这是这样做的方式。。。你有什么建议吗 $('[id$="Button_"]').click(function() { var id = $(this).attr('id'); var ButtonID = id.substring(id.lastIndexOf("Button_"));

我有一些代表按钮的div,所有按钮都是以下ID结构:

Button_<id>
有没有一种方法可以将单击侦听器附加到所有按钮并在侦听器中获取其ID?我提出了以下解决方案,但我不认为这是这样做的方式。。。你有什么建议吗

$('[id$="Button_"]').click(function() {
    var id = $(this).attr('id');
    var ButtonID = id.substring(id.lastIndexOf("Button_"));
    //.
    //. Do somthing which requires the ID
    //. of this button, for instance an AJAX request
    //.
});
是的,这是可能的



    $('[id^="button_"]').click(function() {
        var id = $(this).attr('id');
        var ButtonID = id.split('_')[1];
        alert(ButtonID);
    });


如果您使用的是“属性以选择器结尾”,它不会选择元素,您应该使用“属性以选择器开头”:

$('[id^="Button_"]').click(function() {
    var num = this.id.match(/\d+/g).join(''); // 54
    // ....

});

最简单的方法是给所有按钮赋予它们自己的类,然后用它来应用处理程序。是的,我可以这样做,但ID应该是唯一的,我只是想知道什么是一个好的实践解决方案。他说的是类而不是ID。用于选择按钮的公共类。但是你的代码没问题…@KirillKulakov除了ID Lee Taylor外,还建议你添加
class
属性,该属性不要求唯一。我已经使用class参数定义了按钮的样式,拥有多个类可能不是最好的选项。
.match
给出了一个数组,但是,另一种方法是使用原始代码,但修改为
…lastIndexOf(“”)+1…
,假设所有ID的格式相同,且唯一位仅位于最后一个下划线之后。
$('[id^="Button_"]').click(function() {
    var num = this.id.match(/\d+/g).join(''); // 54
    // ....

});