jQuery将元素值传递给下拉选项文本

时间:2012-12-24 14:44:32

标签: jquery option nodes

div容器:

<div id="count"><span>Apple:</span>4</div>

表格下拉列表:

<select id="list" size="6">
  <option selected="selected">Any Number</option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5+</option>
</select>

我想将选项列表与水果计数联系起来。如果div容器的值为“Apple:4”,则选择“Option 4”,如果div值变为“Pear:3”,则应选择“Option 3”,依此类推。< / p>

以下是我到目前为止在jQuery中所做的事情:

var optionObject = document.getElementById('list');
var countValue = document.getElementById("count").childNodes[2].nodeValue;

for(var i=0; i<optionObject.length; i++){                        
   if(optionObject.options[i].text == countValue.trim()){
        optionObject.options[i].selected = true;
        break;
   }
}

执行后没有发生任何事情,有人可以看一下代码吗?感谢。

4 个答案:

答案 0 :(得分:0)

​var a = $('#count').text();
a = a.substr(a.length - 1, a.length);
$('#list option:eq('+a+')').prop('selected','selected');
​

小提琴 - http://jsfiddle.net/atif089/DYg96/1/

答案 1 :(得分:0)

$('#list option:eq('+($('#count').text().split(':').pop())+')').prop('selected','selected');

答案 2 :(得分:0)

可行,只需将第二行更改为:

var countValue = document.getElementById("count").childNodes[1].nodeValue;

工作jsFiddle

如果你有它使它适用于数字&gt; 5;)

答案 3 :(得分:0)

http://jsfiddle.net/3pjbb/3/

我建议将其用作:

var countValue = $.trim($('#count').text().match(/(\d+)/g));
$('#list').val(countValue);​