如何更改选择选项下拉列表中的数据

问题描述:

需要一些帮助来更改选定选项中的数据。如何更改选择选项下拉列表中的数据

数据首先从JSON结果填充到下拉选项列表中,同一JSON是第二个数据需要在从下拉列表中选择选项时进行更改。

我想要os改变选择商店的价格。

这是我的javascript代码:

$(function() { 
    var pricestore = [{"product_id":"1","store_id":"1","price":"120.00","sequence":"0","id":"1","parent_id":"0","name":"Store 1","email":"[email protected]"},{"product_id":"1","store_id":"2","price":"140.00","sequence":"0","id":"2","parent_id":"0","name":"Store 2","email":"[email protected]"}]; 
    $.each(pricestore, function(i, option) { 
     $('#sel').append($('<option/>').attr("value", option.id).text(option.name));  
    }), 
    //Trying to populate the price on div id 
    $$('#price-store').each(function(el) { 
     el.innerHTML = pricestore; 
     }); 
}) 

这是HTML获取数据

<select id="sel"></select> 
<div id="price-store"></div> 

这里也是对的jsfiddle

http://jsfiddle.net/A386B

任何帮助的例子非常感谢。

检查: -

Demo

按照你需要什么我从你的问题理解为显示价格在div作为下拉值的变化。您可以使用下面的方法。您需要使用dropdown上的更改事件。

此方法使用所选选项元素的Index()并从JSON检索相应的记录。

$('#sel').change(function() { 
     $('#price-store').text(
       pricestore[$('option:selected', this).index()].price); 
    }); 

另一种方法是使用data-attributes选项元素来存储相应的价格和获取它的下拉值的变化。

Demo

$('#sel').append($('<option>', 
         { 
          "value" :option.id, 
          "data-price" :option.price 
         }).text(option.name)); 
}), 
$('#sel').change(function() { 
    $('#price-store').text($('option:selected', this).data('price')); 
}); 
+1

由于PSL,这我想要什么:)。 – Dario 2013-05-05 03:52:15

+0

快速的问题,我怎么能保持所有的时间价格较低的价值?非常感谢。 – Dario 2013-05-05 03:54:04

+0

@Dario抱歉,我无法清楚地理解你的问题。你可以举例说明... – PSL 2013-05-05 04:07:36

您使用$$选择您的div而不是$$('#price-store')
传递给.each()方法的函数的第二个参数不是第一个。 function(i, el) {
为什么你使用.each()一格?
您必须格式化pricestore中的数据才能将其显示在div中,否则您将获得的数据为[Object object],[Object object]

或者这一个:

<div id="price-store"></div 
<form> 
    <select id="price"> 
     <option>120</option> 
     <option>140</option> 
     <option>160</option> 
    </select> 
</form> 

和:

$('#price').change(function() { 
$('#price-store').text($('#price').find(":selected").text()); 
}); 

http://jsfiddle.net/XcSZL/8/