我在项目中有一个选择框。它是表单的一部分。使用菜单选择产品。在同一行上是产品价格必须来的输入。隐藏在页面中的某处我有一个div,其中ID为产品名称。该div包含产品数据(价格和其他一些数据)。我有一个eventhandler,它对selectbox做出反应(javascript on(change))。
在eventhandler中,我有以下代码来查找包含价格的div(prijs,I' m Dutch)。它不起作用。我在这里做错了什么?
$(this).parent('tr').find('#prijs').val($(div).find($this.val()).find('#prijs')).val();
我修复了我制作的所有愚蠢的拼写错误。谢谢你把它们拿出来。周四晚的关键时刻让我向南走了一会儿。我将在下面给出一个更详细的例子。
<select name='producten[1]' class='product'>
<option value='phone1'>phone1</option>
<option value='phone1'>phone2</option>
</select>
<input type="text" id="prijs"></input>
<input type="text" id="per"></input>
<div class="hidden" id="phone1"><div id="dbprijs">'125.00'</div><div id="dbper">a piece</div></div>
<div class="hidden" id="phone2"><div id="dbprijs">225.00</div><div id="dbper">a piece</div></div>
<script type="text/javascript">
$(document).ready(
function(){
$("body").on("change",".product", function(){
$(this).parent('tr').find('#prijs').val($('div').find($(this).val()).find('#dbprijs')).val();
});
}
);
</script>
A JSFiddle with the above code
据我所知,这里真正的挑战是告诉JQuery查找具有selectbox值的id。感谢Fabrizio编辑原始问题。
答案 0 :(得分:2)
一个可能的错误是this
未被$()
包裹
其次div
没有单引号。
$(this).parent('tr').find('#prijs').val($('div').find($(this).val()).find('#prijs')).val();
答案 1 :(得分:0)
有时候使用.on
变得困难。因此,请尝试使用.change
代替下面提到的代码。
<强> jQuery("select.product").change( function(){
/* Now your code */
});
强>
除非您需要确定如何获得tr
。正如你在html中提到的那样,它需要在select
字段的父元素中。
希望这会清除这种方法!干杯!