Jquery使用以开头的任意选择框ID
我似乎无法做到这一点,因为您可以看到我下面的代码要求选择框的第一部分为“#select_u”,然后将以随机数结尾,即“#select_123”,因此我需要使用通配符。但是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_'
[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
});
如果这些选择框是相似的,你就不能用一个类来装饰它们吗?这听起来是一种错误的方式来做你想要的事情。更好地使用数据-*值或类。