2012-10-24 55 views
-1

我有一个对象汽车价格,模型和品牌。我想在选择中展示这一点。不同的价值,我想从选项

我有一个选择,看起来是这样的:

<select> 
    <option>Ford Mustang 30000</option> 
    <option>Alfa Romeo giuletta 25000</option> 
</select> 

我能做什么,所以我可以选择的选项的价格。 所以,当我选择的选项,我可以得到期权的每一个细节(品牌,型号,价格)

var brand = ... 
var model = ... 
var price = ... 

我试着用的JSONObject并覆盖了toString() - 方法,但我不能改变它回以一个JSONObject ..

谢谢您的帮助

+1

这里有什么问题?什么是'JSONObject'? –

+0

只需将另一个字段添加到汽车对象 - 标识。为他们分配一个唯一的ID并将其分配为选项值。然后,您可以在选择某个选项时进行查找。 – Archer

回答

2

你可以使用HTML5 data-属性来存储选项本身的信息,然后用js来访问它。

<select id="cars"> 
<option data-brand='Ford' data-model='Mustang' data-price='30000'>Ford Mustang 30000</option> 
</select> 

在JS

var $selected_car = $('#cars :selected'); 
var brand = $selected_car.data('brand'); 
var model = $selected_car.data('model'); 
var price = $selected_car.data('price'); 
1

如果您使用HTML5,你可以使用data属性。例如:

<select> 
    <option value="30000" data-brand="Ford" data-model="Mustang">Ford Mustang 30000</option> 
    <option value="25000" data-brand="Alfa Romeo" data-model="Giulietta">Alfa Romeo giuletta 25000</option> 
</select> 

然后在代码中,你可以选择这些了:

$("select").change(function() { 
    var $select = $(this); 
    var $option = $("option:selected", $select) 

    var brand = $option.data("brand"); 
    var model = $option.data("model"); 
    var price = $select.val(); 

    // do your thing... 
}); 
+0

Rocket你可以事件做'$('select option:selected')' –

+0

@azizpunjani的确,有很多方法来为这只特定的猫皮肤。我选择了我所做的方式,因为我已经有'$ select'变量被缓存供以后使用。 –

+0

我确切的一点!虽然我暗示它。 –

0

如果你不使用HTML5,你可以编码在每个选项的值属性的所有数据。

<option value="{'brand':'Ford','model':'Mustang','price':'$30,000'}">Ford Mustang</option> 

$("select").change(function() { 
    var $select = $(this); 
    var $option = $("option:selected", $select) 
    var data = jQuery.parseJSON($option.value); 

    var brand = data.brand; 
    var model = data.model; 
    var price = data.price; 

    // do your thing... 
});