2012-09-05 14 views
27

Sto cercando di eseguire il seguente codice.Per passare() ottenere: valore di testo selezionato

$("select#shipping_rates_drop").change(function(){ 
      var thisvalue = $(this + "option:selected").text(); 
      var ship = thisvalue.split("£"); 
      var subtotal = $("ul#deliveryList").attr("class"); 
      var ship = ship[1]; 
      var totalcost = parseFloat(subtotal)+parseFloat(ship); 
      $(".wrap.form-section h1 span").html("&nbsp;&nbsp;&nbsp;&nbsp;<small>Total </small> £"+totalcost); 
      $("input[name=itemamt]").val(subtotal); 
      $("input[name=shippingamt]").val(ship); 
      checklistCheck1(); 
     }); 

voglio ottenere il testo dal valore selezionato sul cambiamento. ex. UPS Worldwide Express - £ 89,57 quindi il codice divide il valore per ottenere il numero effettivo di costi.

Ma console.log getta il seguente

Error: Syntax error, unrecognized expression: [object HTMLSelectElement]option:selected

a jquery.min.js (linea 2)

modo im assumendo che ho fatto qualcosa di sbagliato qui e sperando che qualcuno potrebbe aiutare

+0

L'inizio del codice sembra sbagliato, ma credo che questo è solo un copia/incolla emettere giusto? – Niklas

risposta

82

la linea dovrebbe essere

var thisvalue = $(this).find("option:selected").text(); 
+1

salvato la mia giornata ... – waza123

+2

find() è la più grande funzione negli elementi :) Grazie amico. – QMaster

2

Change

var thisvalue = $(this + "option:selected").text(); 

a

var thisvalue = $("select#shipping_rates_drop option:selected").text(); 
Problemi correlati