Javascript jquery脚本添加id并使用它不会';行不通

Javascript jquery脚本添加id并使用它不会';行不通,javascript,jquery,contains,Javascript,Jquery,Contains,我正试图用我的键盘点击一个使用id的按钮 对于一些按钮,我必须设置ID,这实际上是可行的。但是,只要我尝试使用键盘来设置id的按钮,它就不会工作 我没有收到任何错误,因为向元素添加id是有效的,所以我有点困惑为什么我以后不能在代码中使用新的集合id //setting id for first button (works) $( "a:contains('Im Verband freigeben')" ).attr('id', 'freigabe-verband'); //setting id

我正试图用我的键盘点击一个使用id的按钮

对于一些按钮,我必须设置ID,这实际上是可行的。但是,只要我尝试使用键盘来设置id的按钮,它就不会工作

我没有收到任何错误,因为向元素添加id是有效的,所以我有点困惑为什么我以后不能在代码中使用新的集合id

//setting id for first button (works)
$( "a:contains('Im Verband freigeben')" ).attr('id', 'freigabe-verband');
//setting id for second button (works aswell)
$( "a:contains('Vorheriger Einsatz')" ).attr('id', 'vorheriger-einsatz');


$( document ).keydown(function(e) {
 if (e.keyCode == 39) {
    //works, id is available, not set by me
     $("#alert_next").click();

} else if (e.keyCode == 38){
    // doesn't work, but id is set
    $("#freigabe-verband").click();

} else if (e.keyCode == 40){
    // doesn't work, but id is set
    $("#vorheriger-einsatz").click();

} 
return e.returnValue;

});
有人知道为什么吗?

试试这个例子:

$(document).find("#vorheriger-einsatz").click();

您将在事件发生后添加到DOM,因此除非再次搜索DOM,否则将找不到它

要单击DOM元素,请使用:-

$('#freigabe-verband')[0].click();

示例

$(“a”).attr('id','test');
$(文档).keydown(函数(e){
$('#test')[0]。单击();
});

这毫无意义。 我复制了你的代码并创建了一个plunkr,它工作得很好。

//代码在这里
$(函数(){
//设置第一个按钮的id(工作)
$(“a:contains('Im Verband freigeben'))。attr('id','freigabe Verband');
//设置第二个按钮的id(也适用)
$(“a:contains('vorheiger-Einsatz'))).attr('id','vorheiger-Einsatz');
$(文档).keydown(函数(e){
如果(e.keyCode==39){
//工作,id可用,不是我设置的
$(“#警报#下一步”)。单击();
}否则如果(e.keyCode==38){
//向上箭头
$(“#freigabe verband”)。单击();
}否则如果(e.keyCode==40){
//向下箭头
$(“#vorheriger einsatz”)。单击();
} 
返回e.returnValue;
});  
}
);

你好,普朗克!


DOM不知道您给了该对象一个
id
,您需要委托该事件。这对我来说很好:。但是我在那把小提琴上执行jQuery onload。你能把它包装成一个文档吗?准备好了,看看它是否适合你吗?如果你想模拟一个锚,点击这个链接。您的代码适用于任何其他绑定的处理程序。是的,这很有道理。不知道如何委派它,必须查找它。缺少[0]并修复了我的代码-我没有更改任何其他内容。
$('#freigabe-verband').get(0).click();