使用一个元素的值在jquery中查找另一个元素

时间:2014-06-26 14:51:52

标签: javascript jquery jquery-selectors

我在项目中有一个选择框。它是表单的一部分。使用菜单选择产品。在同一行上是产品价格必须来的输入。隐藏在页面中的某处我有一个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编辑原始问题。

2 个答案:

答案 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字段的父元素中。

希望这会清除这种方法!干杯!