Jquery和变量ID名称

我试图避免为不同的ID使用相同的代码。 像submitter1,submitter2等的东西。在同一个过程中,变量也用于获取不同位置1,不同位置2等的输入框ID。有人可以帮我解决下面的代码吗?

$(document).ready(function() { $('#submitter').click(function(event) { event.preventDefault(); var newlocation = $("input[name=differentlocation""']"); alert(newlocation); //testing purposes //$('#location').val(newlocation).change(); //Changes location input box //$("#submit").click(); //submits new location }); }); 

这段代码使用静态ID,但就像我说的那样我想调整它以使用变量id。

谢谢。

您可以使用属性starts with selector :

 $('button[id^="submitter"]').click(...); 

click函数中,您可以使用简单的字符串方法获取id

 var uuid = this.id.slice(9), newlocation = $('input[name="differentlocation'+uuid+'"]'); 

工作演示: http : //jsfiddle.net/wy8X9/

正确的解决方案是使用类而不是ID,因为多个元素可以具有相同的类。 要使用相同的变量部分引用输入,您可以使用(部分)ID或更好的数据字段(HTML中的data-whatever="..."$(elem).data('whatever')在JS)

将ID设置为data-id并将其指向这样

  $('.submitter').click(function(){ id = $(this).attr('data-id'); var newlocation = $("input[name=differentlocation"+id+"']"); }) 

在做一些你想要分享的事情时,我建议你根据一个普通的class级名称来关联偶数。

您可以阅读this.id以获取事件目标的ID并在那里进行操作。

 $('.submitter').click(function(e) { e.preventDefault(); var numId = this.id.replace(/[^0-9]+/, ''), newlocationId = "input[name=differentlocation" + numId+ "']"; alert(newlocationId); }); 

示例: http : //jsfiddle.net/qud32/

或者,您可以使用Andy建议的“属性开头”选择器。