2011-08-26 56 views

回答

2

有可能一個簡單的方法,但這是基於你已經有了你的提琴代碼:

$('.instock').bind({ 
    click: function(e) { 
     e.preventDefault(); 
     var data = $(this).attr('rel').split(','); 

     $('#size').find("option").filter(function() { 
      return $(this).text() === data[0]; 
     }).attr('selected',true); 
     $('#fitting').find("option").filter(function() { 
      return $(this).text() === data[1]; 
     }).attr('selected',true); 
    } 
}); 

這得到所有的option元素,然後過濾他們只留下匹配電流的那些文本。

這是update fiddle

+0

這對小提琴完美起作用,但不在我的網頁(內部網站)上。嗯到目前爲止的最佳答案,讓我檢查我的網頁,並回復給你。謝謝詹姆斯。 – Jeepstone

+0

稱爲#fitting的衝突元素導致了問題。現在在內部修復。感謝您的幫助。這與Rusty Jeans之間的緊密通話,但已經得到了這個工作。認爲其他方法也應該起作用。 – Jeepstone

0
$('.instock').bind({ 
     click: function(e) { 
      e.preventDefault(); 
      var data = $(this).attr('rel').split(','); 


      $('#size').find('option:contains("' + data[0].toString() + '")').attr('selected',true); 
      $('#fitting').find('option:contains("' + data[1].toString() + '")').attr('selected',true); 
     } 
    }); 

我測試你的jsfiddle鏈接,它的工作現在

+0

唯一的問題是,我有4和4.5,我沒有得到正確的。包含4次兩次IYSWIM? – Jeepstone

0

所有你需要做的是設置選擇的val()到你想要的。

參見:http://jsfiddle.net/tclayson/kE4c5/

<select id="mySelect"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
</select> 

<br /><br /> 

<a href="#" id="clicked">Click</a> 

當你點擊鏈接「點擊」它只是設置選擇(#mySelect)到2的值。

$(document).ready(function(){ 
    $('#clicked').click(function(){ 
     $('#mySelect').val('2'); 
     return false; 
    }); 
}); 

因此,而不是試圖find()要選擇的選項,您可以根據選項的值更改選擇(例如:4.5將在您的案例中爲46)。

+0

不幸的是,我不知道在我的中設置的值,只有選項的文本。 – Jeepstone

+0

嗯足夠公平 - 你有那裏奇怪的問題呢! :/抱歉我無法幫助 –

0

這段時間是一個特殊字符,它需要通過兩個反斜槓進行轉義。試試這個:

$('#size').find('option[text=' + data[0].toString().replace(".", "\\.") + ']').attr('selected',true); 
+0

奇怪的是,這似乎仍然不適用於配件。 – Jeepstone

+0

嗯,它是爲我工作:http://jsfiddle.net/G6Mz5/13/ –

+0

是的,我認爲這是我的網頁。必須在某處存在衝突元素 – Jeepstone

相關問題