2014-03-27 64 views
-1

我需要幫助,因爲我找不到錯誤的方式。我有這樣的代碼:每個就像使用帶有變量的jQuery選擇器

datosPre:

datosPre[0]='TipoViaFact=Paseo'; 
datosPre[1]='ProvinciaFact=3'; 

$.each(datosPre, function(key, value) { 
      var tempArray = value.split('='); 
      if (tempArray[0] == 'TipoViaFact' || tempArray[0] == 'ProvinciaFact') { 
       var tx0 =tempArray[0].toString(); 
        console.log(tx0); 
       var tx1 =tempArray[1].toString();   
        console.log(tx1); 
        console.log("selector:"+"[name="+tx0+"] option[value="+tx1+"]"); 
       var txs =$("[name='"+tx0+"'] option[value="+tx1+"]").text(); 
       //$("[name='"+tx0+"'] option[value="+tx1+"]").attr('selected','selected'); 
        console.log(txs); 
      } 
}); 

console.log(txs)回報empty字符串。我使用.text()測試,但我需要選擇加入「.attr('selected','selected');」,而不是.text();

我一直在使用Firebug的控制檯來代替自己在TXS選擇的增值經銷商試圖和它的作品,但不是在這裏。

我在這裏閱讀了幾篇文章,並且我以這種方式跟蹤了這些例子。

有人可以幫助我嗎?

+1

爲什麼你不只是調試呢?將結果與HTML(您未在此問題中顯示)進行比較將會輕鬆得多。 – raina77ow

+0

請注意,如果您可以自由選擇用於存儲預選數據的格式(您似乎這麼做),那麼使用JS對象代替字符串數組是有益的,就像在[本演示](http:// jsfiddle)中一樣。淨/ P9k6q /)。 – raina77ow

+0

最後,你在DOM加載時調用了這個,對吧?因爲否則它是一個相當微不足道的問題。首先, – raina77ow

回答

0

檢查了這一點

<script src="http://code.jquery.com/jquery-latest.min.js" 
     type="text/javascript"></script> 

<script> 
var datosPre = new Array(); 
datosPre[0]='TipoViaFact=Paseo'; 
datosPre[1]='ProvinciaFact=3'; 

$.each(datosPre, function(key, value) { 
      var tempArray = value.split('='); 
      if (tempArray[0] == 'TipoViaFact' || tempArray[0] == 'ProvinciaFact') { 
       var tx0 =tempArray[0].toString(); 
        console.log(tx0); 
       var tx1 =tempArray[1].toString();   
        console.log(tx1); 
        console.log("selector:"+"[name="+tx0+"] option[value="+tx1+"]"); 
       var txs =$("[name='"+tx0+"'] option[value="+tx1+"]").text(); 
       //$("[name='"+tx0+"'] option[value="+tx1+"]").attr('selected','selected'); 
        console.log(txs); 
      } 
}); 
</script> 
0

你缺少引號包圍value在selector.try此屬性值。

 var txs =$("[name='"+tx0+"'] option[value='"+tx1+"']").text(); 
    console.log(txs); 

,並選擇該選項:

 $("[name='"+tx0+"'] option[value='"+tx1+"']").prop('selected', true); 
+0

如果'tx0'和'tx1'是有效的標識符,則不需要引號 - 在第一種情況下它們是。 – raina77ow

+0

@ raina77ow:這是否意味着它不會出現在名稱值選擇器中? –

+0

@ raina77ow它是正確的,我用引號試過,沒有引號,我得到了同樣的結果。 – davidrmolla