jQuery : add attr to each element based on values list

标签 jquery

我编写了这段代码,用于将 attr 添加到在 index 变量上定义了值的选项元素:

$(document).ready(function (){

    $('option').each(function() {
      var index = '1';
      if($(this).attr('value') == index)
        $(this).attr('selected','selected');
    });

});

如何将 attr 添加到具有 index 变量上列出的值的每个元素。像这样的事情:

      var index = '1,2,5,8,7,9';
      if($(this).attr('value') == index)
...

更新: 这是我的 html 代码:

<select name="category[]" multiple="multiple" id="category">
    <option class="level-0" value="1">Jobs</option>
    <option class="level-1" value="24">CSS</option>
    <option class="level-0" value="5">Products</option>
</select>

最佳答案

$('#category option').each(function() {
  var index = [1,2,5,8,7,9],
      value = parseInt( this.value, 10); // convert the value to integer
  if($.inArray(value, index) >= 0)
    $(this).attr('selected','selected'); //or, $(this).prop('selected', true);
});

Working sample

<小时/>

没有数组

$('#category option').each(function() {
  var index = '1,2,5,8,7,9',
      value = this.value;
  if(index.indexOf(value) >= 0)
    $(this).attr('selected','selected'); //or, $(this).prop('selected', true);
});

Working sample

<小时/>

使用filter()

var index = '1,2,5,8,7,9';
$('#category option').filter(function() {
  return index.indexOf(this.value) >= 0;
}).attr('selected', 'selected');

Working sample

<小时/>

使用.attr('selected',callback)

var index = '1,2,5,8,7,9';
$('#category option').attr('selected', function(i, val) {
  if( index.indexOf( this.value) >= 0 )
  return 'selected';
})

Working sample

关于jQuery : add attr to each element based on values list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12455758/

相关文章:

javascript - 为什么 event.stopPropagation() 会停止委托(delegate)事件中的多个匹配元素?

javascript - 单击后加载 iframe

javascript - 将 Ajax 与 celery 任务一起使用

javascript - 检查浏览器是否全屏

c# - 使用 jQuery 将 byte[] 渲染为图像

javascript - 使 .css 基于毫秒重复几次 - DRY

javascript - 模态淡入淡出对话框无法打开

jquery - 如何更改 ".slideToggle"JQuery 效果的原点?

javascript - this.domNode 为空

jquery - 我怎样才能使一个 Div 保持在它的位置上?