2011-10-17 159 views
1

檢查此JSFiddle看到我的問題。選擇使用jQuery不工作的選擇選項

我正在從td中選擇一個時間,並希望從下拉菜單中選擇一個選項。

它在IE8中工作正常,但不適用於Chrome和IE9。

HTML

<table> 
    <tr> 
     <td id="time"> 
      11:20:12 
     </td> 
    </tr> 
</table> 

<select id="StartHour" name="DateRangeFromSeconds"> 
    <option value="00">00</option> 
    <option value="01">01</option> 
    <option value="02">02</option> 
    <option value="03">03</option> 
    <option value="04">04</option> 
    <option value="05">05</option> 
    <option value="06">06</option> 
    <option value="07">07</option> 
    <option value="08">08</option> 
    <option value="09">09</option> 
    <option value="10">10</option> 
    <option value="11">11</option> 
    <option value="12">12</option> 
    <option value="13">13</option> 
    <option value="14">14</option> 
    <option value="15">15</option> 
    <option value="16">16</option> 
    <option value="17">17</option> 
    <option value="18">18</option> 
    <option value="19">19</option> 
    <option value="20">20</option> 
    <option value="21">21</option> 
    <option value="22">22</option> 
    <option value="23">23</option> 
    <option value="24">24</option> 
    <option value="25">25</option> 
    <option value="26">26</option> 
    <option value="27">27</option> 
    <option value="28">28</option> 
    <option value="29">29</option> 
    <option value="30">30</option> 
    <option value="31">31</option> 
    <option value="32">32</option> 
    <option value="33">33</option> 
    <option value="34">34</option> 
    <option value="35">35</option> 
    <option value="36">36</option> 
    <option value="37">37</option> 
    <option value="38">38</option> 
    <option value="39">39</option> 
    <option value="40">40</option> 
    <option value="41">41</option> 
    <option value="42">42</option> 
    <option value="43">43</option> 
    <option value="44">44</option> 
    <option value="45">45</option> 
    <option value="46">46</option> 
    <option value="47">47</option> 
    <option value="48">48</option> 
    <option value="49">49</option> 
    <option value="50">50</option> 
    <option value="51">51</option> 
    <option value="52">52</option> 
    <option value="53">53</option> 
    <option value="54">54</option> 
    <option value="55">55</option> 
    <option value="56">56</option> 
    <option value="57">57</option> 
    <option value="58">58</option> 
    <option value="59">59</option> 
</select> 

JQuery的

var s=$('#time').html().split(':'); 
alert(s[0]); // I'm getting the value here. How can I set this value in the drop down list? 
$("#StartHour option[value='" +s[0] + "']").attr('selected', 'selected'); 

回答

2

當你打電話.html()拿到表格單元格的內容你讓所有的前端和後端的空白,以及文字:你有興趣;以防萬一,您應該使用.text()而不是.html()。因此,使用replace剛剝離出空白:

var s = $('#time').text().replace(/\s/g, '').split(':'); 

演示:http://jsfiddle.net/ambiguous/xmgAu/

+0

'text()'沒有工作。但給定的解決方案工作。謝謝 –

+0

@Null:給定的解決方案使用'text()'*和*'replace'。 –

+0

好的:)對不起..我以爲只會使用'text()'而不使用'replace'來得到答案。再次感謝 –

1

這是設置下降的值向下選擇元素的正確方法:

var s=$('#time').html().split(':'); 
alert(s[0]); // here i am getting value .. How can i set this value in drop down list 
$("#StartHour").val(s[0]); 
0

$("#StartHour option[selected]").removeAttr("selected");
$("#StartHour option[value="+s[0]+"]").attr('selected', 'selected');

0

嘗試

$("#StartHour").val(s[0]); 
0

使用的.html或的.text是不是這件事也嚐嚐這

$("#StartHour").val(parseInt(s[0])); 

代替

$("#StartHour option[value='" +s[0] + "']").attr('selected', 'selected'); 
1

。 。這件事是你應該刪除空格和使用$(「#ID」)設置的值VAL(指數)。所以你的更正後的代碼如下:

var s = $('#time').html().replace(/\s/g, '').split(':');//white space removed 
alert(s[0]); // here i am getting value 
$("#StartHour").val(s[0]); //Here i am setting this value in drop down list 

這應該幹活已經測試了這個在jsfiddle.net