灰显基于xml文件的选择选项

时间:2012-12-03 12:54:28

标签: javascript jquery html

我有一个像这样的XML文件

<?xml version="1.0" standalone="no" ?>
<Reading>
<Item Time="17:35">
    <SlaveAddress />
    <Slave_4 Value="0" />
    <Slave_3 Value="0" />
    <Slave_2 Value="0" />
    <Slave_1 Value="1" />
</Item>
</Reading>

我的下拉列表看起来像这样

<select id="comboBox" style="width:100px;" tabindex="1">
 <option value=""></option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
</select>

是否可以根据该XML文件使<select> <option>中的任何一个变灰?这意味着如果Slave_1的值为1,则启用<option> 1,如果Slave_2为0,则<option> 2将被禁用或显示为灰色。

然后,用户可以根据任何已启用的选项进行选择。

我很想得到你的任何意见。 Javascript或JQuery并不重要。

1 个答案:

答案 0 :(得分:1)

这样的事情应该可以解决问题。解析xml,mjQueryfy它,通过它,获取正确的东西,并根据需要禁用或启用

var xml = $.parseXML('your_xml_as_a_string_or_whatever');
var $xml = $(xml);

$xml.find('Item').children().each(function(index, value) {
  var $this = $(this);
  var tagName = $this.prop('tagName').toLowerCase();
  if (tagName.indexOf("slave_") === 0) {
    var value = $this.attr('Value');
    var number = tagName.slice(-1);
    if (value === '0') {
      $('option[value="'+number+'"]').attr('disabled', 'disabled');
    } else {
      $('option[value="'+number+'"]').removeAttr('disabled');
    }
  }
});