Jquery使用以开头的任意选择框ID

Jquery使用以开头的任意选择框ID,jquery,select,Jquery,Select,我似乎无法做到这一点,因为您可以看到我下面的代码要求选择框的第一部分为“#select_u”,然后将以随机数结尾,即“#select_123”,因此我需要使用通配符。但是[id^='select.']似乎不正确 我还需要将selectelements“selected”选项传递给一个变量 jQuery("[id^='select_']").change(function() { var optionValueText = jQuery.trim(jQuery($("[id^='select_'

我似乎无法做到这一点,因为您可以看到我下面的代码要求选择框的第一部分为“#select_u”,然后将以随机数结尾,即“#select_123”,因此我需要使用通配符。但是
[id^='select.']
似乎不正确

我还需要将selectelements“selected”选项传递给一个变量

jQuery("[id^='select_']").change(function() {

var optionValueText = jQuery.trim(jQuery($("[id^='select_']")+' :selected').text());

   //do something  

});
我知道,如果我只对id名称进行卡编码(即jQuery(#select_123)),这个代码可以正常工作,但我没有这个选项。

您可以这样使用

$('div[id^="select_"] :selected')
以选择器开头


选择具有指定属性且值以给定字符串开头的元素。

您可以尝试将选择设置为泛型,然后在更改时检查id:

$("select").change(function(){

  var n=$(this).attr("id").split("_");
  if(n == "select")
  {
   //do something here
  }
});

问题在于这一部分:

$("[id^='select_']")+' :selected'
您正试图将jQuery对象与字符串连接起来,这将起作用,但会导致无效的选择器

您可以简单地使用:

'[id^="select_"] :selected'
或者,因为您已经有了对特定
元素的引用,所以将整个内容更改为:

jQuery("[id^='select_']").change(function() {
    var optionValueText = jQuery.trim(jQuery(':selected', this).text());
    //do something  
});

如果这些选择框是相似的,你就不能用一个类来装饰它们吗?这听起来是一种错误的方式来做你想要的事情。更好地使用数据-*值或类。