jquery-遍历:选择->选项->文本
我想将变量与 select 进行比较 ->选项->为了更改“选定”属性而选择的文本,这是我的代码,它有效,但我认为这不是最好的编写方式,请原谅我的英语,我使用谷歌翻译寻求帮助嘿嘿嘿:
var lista = 'example 1';
$("#id option").each(function(){
if($(this).text() == lista){
$(this).attr('selected','selected');
}
});
这里是html:
<select id="id" >
<option value="0" >example 1</option>
<option value="1" >example 2</option>
</select>
这里有一些尝试
$('#id option:eq("'+lista+'")').attr('selected','selected')
$("#id option[text='"+lista+"']").attr('selected','selected')
I want to compare a variable with a select -> option -> text selected in order to change the "selected" attrib, here is my code, it works but I think is not the best way to write it, excuse my English, I used google translate for help hehehehe :
var lista = 'example 1';
$("#id option").each(function(){
if($(this).text() == lista){
$(this).attr('selected','selected');
}
});
here's the html:
<select id="id" >
<option value="0" >example 1</option>
<option value="1" >example 2</option>
</select>
here's a few attempts
$('#id option:eq("'+lista+'")').attr('selected','selected')
$("#id option[text='"+lista+"']").attr('selected','selected')
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以尝试以下操作,而不是循环遍历每个:
或
也同样有效。这仅取决于您的变量
lista
是否需要完全匹配或只是部分匹配。Instead of looping through each, you can try this:
or
Works just as well. It just depends if your variable
lista
will need to be an exact match or just a partial one.你所拥有的并没有什么问题,jQuery 会在幕后做或多或少相同的事情。
如果你想将它们链接在一起,你可以使用
filter()
:< a href="http://api.jquery.com/contains-selector/" rel="nofollow">
:contains
可能适合您,但它的工作方式类似于通配符匹配,例如 cat 将匹配 category:There's nothing wrong with what you have, jQuery will be doing more-or-less the same under the hood.
You could use
filter()
if you want to chain it all together::contains
might work for you but it works like a wildcard match, e.g. cat would match category:您的方法非常有效,但可以做得更进一步,如下所示:
这使用本机属性,因此速度会更快。
.text
属性给出元素的文本内容
.selected
设置所选属性< code>return false; 一旦选择了一个,就会中断循环,所以它不会不必要地继续
Your way is pretty efficient, but could be made a little more so like this:
This uses native properties so it will be faster.
.text
property gives the text content of the<option>
element.selected
sets the selected propertyreturn false;
will break the loop once one is selected, so it doesn't needlessly continue这应该有效:
This should work:
我可能来得太晚了。
这比
在 http://jsperf.com/selector-performance-00000< 检查性能日志 要快大约 97% /a>
I'm probably too late.
This is about 97% faster then
check performance log at http://jsperf.com/selector-performance-00000