0

我似乎无法让它工作,因为您在下面看到我的代码需要一个带有名为“#select_”的第一部分的选择框,然后将以随机数结束,即“#select_123”,所以我需要使用通配符. 但[id^='select_']似乎不正确。

我还需要将选择元素“选定”选项传递给变量。

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

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

   //do something  

});

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

4

3 回答 3

0

您可以使用“开始于”选择器:像这样

$('div[id^="select_"] :selected')

以选择器开头

Selects elements that have the specified attribute with a value beginning exactly with a given string.

于 2013-01-16T14:06:20.470 回答
0

您可以尝试使选择通用,然后在更改时检查 id:

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

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

http://jsfiddle.net/ZTMKK/

于 2013-01-16T14:07:29.643 回答
0

问题是这部分:

$("[id^='select_']")+' :selected'

您正在尝试将 jQuery 对象与字符串连接起来,这会起作用,但会导致选择器无效。

您可以简单地使用:

'[id^="select_"] :selected'

或者,由于您已经引用了特定<select>元素,因此将整个内容更改为:

jQuery("[id^='select_']").change(function() {
    var optionValueText = jQuery.trim(jQuery(':selected', this).text());
    //do something  
});
于 2013-01-16T14:11:17.603 回答