1

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”,以此类推。

这是我到目前为止在 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

4 回答 4

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/

于 2012-12-24T14:49:08.973 回答
0
$('#list option:eq('+($('#count').text().split(':').pop())+')').prop('selected','selected');
于 2012-12-24T14:50:42.227 回答
0

它有效,只需将第二行更改为:

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

工作的jsFiddle

考虑一下,如果你让它适用于数字 > 5 ;)

于 2012-12-24T14:52:56.863 回答
0

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

我建议这样使用它:

var countValue = $.trim($('#count').text().match(/(\d+)/g));
$('#list').val(countValue);​
于 2012-12-24T14:57:57.740 回答