2014-11-01 72 views
0

此代碼用於數據庫託管的頁面。該頁面具有滑塊,用戶可從中選擇需要的內核數量和內存的上限和下限。從滑塊中選擇的值正在工作並在span id中輸出。然後我想要選擇的值來計算價格。然而,我無法取回價值。我把它分解成簡單的部分,並意識到沒有價值返回核心或內存。當滑塊更新頁面時,我需要做些什麼才能檢索這些值?使用jquery通過id獲取值

<script> 
    function showValues(event, ui) { 
     var values; 
     if (!ui.values) { 
      values = $("#" + event.target.id).slider("values"); 
     } 
     else { 
      values = ui.values; 
     } 
     if (values[0] == values[1]) { 
      return false; 
     } 
     else { 
      values[0] % 1 == 0; 
      values[1] % 1 == 0; 
      $("#" + event.target.id + "-valuemin").html(parseInt(values[0])); 
      $("#" + event.target.id + "-valuemax").html(parseInt(values[1])); 
     } 
    } 

    $(document).ready(function() { 
     var base = 24; 
     var cores = parseInt($("#CoreSlider-valuemin").val()*5); 
     var ram = parseInt($("#RanSlider-valuemin").val()*2) + parseInt($("#RanSlider-valuemax").val()); 
     var cost = parseInt(base) + parseInt(cores) + parseInt(ram);     
     $("#Cost").html(parseInt(cost)); 
    }); 
$(function() {$("#RanSlider").slider({range: true,min: 1,max: 64,step: 1,values: [4, 16],slide: showValues,create: showValues,change: showValues});}); 
$(function() {$("#CoreSlider").slider({range: false,min: 1,max: 16,step: 1,values: [2],slide: showValues,create: showValues,change: showValues});}); 

    </script> 
+0

你沒有得到什麼價值?顯示HTML以及 – 2014-11-01 12:58:03

+0

做一個小提琴:) – 2014-11-01 12:58:18

回答

1

val()是不是可以從一個元素獲取文本(如果它不是一個輸入的功能或相似的東西)。 text()可以做到。看看這個小提琴:http://jsfiddle.net/bandrzejczak/jdf1a2ct/

編輯:讓我改一下吧:你用什麼來寫的東西(如.text("a").html("b")),.val("c"),然後你可以用它來從同一個元素閱讀的東西,而不使用參數(.text("a")寫和.text()閱讀)

另外,如果你想計算每個滑塊移動後的成本,你應該把計算函數在你的valueChange函數。

當然,還有一種更好的方式來做到這一點,而不使用幫手div s,但是這一個我可以使你的工作最快,

編輯:而且不要使用parseInt你知道的是int,就像base變量一樣。

+1

優秀。非常感謝你的協助。 – brianwatson 2014-11-01 15:17:04

0

您的挑戰似乎是關聯事件處理與滑塊。您現有的代碼如下:

$(function() { 
    $("#RanSlider").slider(
    { 
     range: true, 
     min: 1, 
     max: 64, 
     step: 1, 
     values: [4, 16], 
     slide: showValues, 
     create: showValues, 
     change: showValues 
    }); 
}); 

你的slidecreatechange代碼顯示選項。這些都不是有效的選擇。相反,你會想註冊事件回調,如:

$("#RanSlider").on("slide", showValues); 
$("#RanSlider").on("create", showValues); 
$("#RanSlider").on("change", showValues); 

或更有效地:

$("#RanSlider").on(
{ 
    "slide": showValues, 
    "create": showValues, 
    "change": showValues 
});