我有以下代码
<tbody>
<tr>
<td style="width:40%">
<select id="pname.0" name="pname[]" class="form-control ">
<?php
$this->db->order_by('name','asc');
$prod = $this->db->get('product')->result_array();
foreach($prod as $row): ?>
<option data-price="<?php echo $row['price'];?>" value="<?php echo $row['prod_id'];?>" >
<?php echo ucwords($row['name']);?>
</option>
<?php endforeach; ?>
</select>
</td>
<td style="width:10%">
<input class="form-control" onchange="javascript:calc();" id="item_quantity.0" name="qnty[]" value=""/>
</td>
<td class="text-right" style="width:10%">
<input class="form-control text-right" onchange="javascript:calc();" id="item_price.0" name="price[]" value=""/>
</td>
<td class="text-right" style="width:10%">
<input class="form-control text-right" id="subtot.0" readonly name="item_sub_total" value=""/>
</td>
</tr>
</tbody>
现在,我希望在Dropdown中将选定选项的data-price
属性的值设置为具有动态ID item_price_
0的文本框。这已经改变,因为我添加了添加行按钮。当我点击添加行时,ID将变为item_price_
1。
请帮助我如何使用jquery或javascript获取这些值
答案 0 :(得分:2)
这是你追求的吗?
//if your table has an id or class, use it as tag selector is not good without context.
//$(".tableClass") OR $("#tableID")
$("table").on('change', "select[id^='pname']", function() {
var $row = $(this).closest("tr");
$row.find("input[id^='item_price']").val( $(this).find('option:selected').data("price") );
});
因此,要在选择器中使用.
,您需要按照jQuery selectors API
演示@ fiddle
答案 1 :(得分:0)
首先为所有select
分配一个班级。 (除了&#34;表格控制&#34;)。我猜选择test
类
var selectedPrices = [];
var i = 0;
$(".test").each(function(){
selectedPrices[i] = $(this).find(":selected").attr("data-price");
i++;
});
现在,selectedPrices
是一系列价格。你可以随心所欲地做任何事情。
答案 2 :(得分:0)
您可以听取元素的变化,并获得价格属性:
$('#pname.0').on('change', function(){
var price = $(this).find('option:selected').data('price');
});
PS:我不确定你能用“。”在ID属性中。