高手指导下 jquery 中 select 控件 ,根据text值来选中项没用 我是想用jquery自带的东西 看能不能实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $("#slc1 option[text='jQuery']").attr("selected", true); 这种方式是有作用的。 你这里不起作用可能有多种原因1、select id 错误2、text=jQuery 之间可能有空格或者换行 <option>jQuery</option> 可以这样改了试试3、给option设置value 之后根据value判断,这样可以不用担心空格或换行如果你还是认为不起效,你可以单独写个html测试下,是可以的。贴下我测试成功的代码。。<select id="se"><option value="ss">1111</option><option value="aa">2222</option><option value="tt">3333</option></select><script src="jquery-1.4.2.js" type="text/javascript" ></script><script>$("#se option[text='2222']").attr('selected',true);</script>有不懂的再问 唯一不同的是我的jquery 是 jquery-1.7.2.js,这个应该没影响的哦、你确定你测试显示出来的是222 $("#se option[text='2222']").attr('selected',true);没用$("#se option[value='aa']").attr('selected',true); 这就有用测试几遍都没用 $("select option:contains('Jquery')").attr('selected', true); IE下是没问题的,chrome下就不行了,ff应该也不行吧<script>$("#se option").each(function (){ if($(this).text()=='2222'){ $(this).attr('selected',true); }});</script>循环下就好了。。为什么不用循环呢? 也不难也不麻烦啊 contains 会去匹配所有包含Jquery的text 比如所你下面还有个option>Jquery 1.7<option> 则后面这个option会被选中。 当然如果你只有一个Jquery则可以使用这种方法。。有不懂的再问 问题是我的ie不行啊?为啥咧,我的是ie8 不晓得孔明灯是不是正的测试过$("#slc1 option[text='jQuery']").attr("selected", true); 是不行的。$("select option:contains('Jquery')").attr('selected', true);是可以的,是我需要的答案。不过依旧感谢你 刚又测试了下,chrome下也是有作用的,我的也是ie8 也是有作用的。熟悉jQuery的人都知道 [text=''] 这个是取dom对象的text属性的吧!那么代码:alert(document.getElementById('se').options[0].text);这个也是可以弹出select中option的text的。既然如此,$("#se option[text='2222']")就肯定能取到相对应的jquery对象了。如果楼主哪里不行,请再分析下:1、select id 错误2、text=jQuery 之间可能有空格或者换行 <option>jQuery</option> 可以这样改了试试这两个原因!另外建议楼主将自己的测试代码帖出来或者请楼主换台电脑测试我的代码 哥们儿,我找到原因了,妈的,就是jquery 版本的问题 jquery 1.4.2 可以, jquery-1.7.2.js不行!!擦,为啥版本高的还不行了,真恶心,感谢这位兄弟,谢谢 //上次写jQuery操作碰到 select option[text=' '] 属性判断选中的问题: $("#id option[text='OK']").attr('selected', true); //这样不行,网上一查也都是这样写的,很无语;后改成这种写法就OK 了 $("#id").find("option[text='OK']").attr('selected', true); http://springlin.iteye.com/blog/1520679 赞同楼主$("select option:contains('Jquery')").attr('selected', true); javascript JS js,什么方法能去除字符串中包含 的 空格符 我将一个图片转换成 byte[] 形式,现在要用JS将byte[] 转成显示在页面上,麻烦哪位知道的告知一下,谢谢 在JS中如何使用拼接字符串来完成命令? javascript怎么获得class 所定义的样式 怎样取到页面实际显示区域的高度 关于htc自定义方法调用的问题 有关级联,简单的问题,但是难煞新手 网页设计中安全问题 求助:insertAdjacentHTML提示"用于此操作的原始HTML无效" iframe 火狐获取键盘编码问题
2、text=jQuery 之间可能有空格或者换行 <option>jQuery</option> 可以这样改了试试
3、给option设置value 之后根据value判断,这样可以不用担心空格或换行如果你还是认为不起效,你可以单独写个html测试下,是可以的。贴下我测试成功的代码。。<select id="se"><option value="ss">1111</option><option value="aa">2222</option><option value="tt">3333</option></select>
<script src="jquery-1.4.2.js" type="text/javascript" ></script>
<script>
$("#se option[text='2222']").attr('selected',true);
</script>
有不懂的再问
你确定你测试显示出来的是222
没用
$("#se option[value='aa']").attr('selected',true); 这就有用测试几遍都没用
IE下是没问题的,chrome下就不行了,ff应该也不行吧
<script>
$("#se option").each(function (){
if($(this).text()=='2222'){
$(this).attr('selected',true);
}
});
</script>
循环下就好了。。为什么不用循环呢? 也不难也不麻烦啊
contains 会去匹配所有包含Jquery的text 比如所你下面还有个option>Jquery 1.7<option> 则后面这个option会被选中。 当然如果你只有一个Jquery则可以使用这种方法。。
有不懂的再问
是不行的。
$("select option:contains('Jquery')").attr('selected', true);
是可以的,是我需要的答案。不过依旧感谢你
alert(document.getElementById('se').options[0].text);这个也是可以弹出select中option的text的。既然如此,$("#se option[text='2222']")就肯定能取到相对应的jquery对象了。如果楼主哪里不行,请再分析下:
1、select id 错误
2、text=jQuery 之间可能有空格或者换行 <option>jQuery</option> 可以这样改了试试这两个原因!另外建议楼主将自己的测试代码帖出来或者请楼主换台电脑测试我的代码
擦,为啥版本高的还不行了,真恶心,感谢这位兄弟,谢谢
$("#id option[text='OK']").attr('selected', true);
//这样不行,网上一查也都是这样写的,很无语;后改成这种写法就OK 了
$("#id").find("option[text='OK']").attr('selected', true); http://springlin.iteye.com/blog/1520679