2014-06-26 96 views
0

我在項目中有一個選擇框。它是一種形式的一部分。通過菜單選擇產品。在同一行上是產品價格必須達到的輸入。隱藏在頁面中的某處我有一個與產品名稱相同的div。這個div包含產品數據(價格和一些其他數據)。我有一個事件處理程序,它對選擇框(javascript on(change))做出反應。使用一個元素的值在jquery中查找另一個

在事件處理程序中,我有以下代碼來查找包含價格的div(prijs,我是荷蘭人)。它不起作用。我在這裏做錯了什麼?

$(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來尋找與選擇框的id值。感謝Fabrizio編輯原始問題。

+0

您能否發佈HTML代碼 –

+0

請注意,頁面上只能有一個元素,其ID爲「prijs」。如果你有不止一個,事情將無法正常工作。 – Pointy

+0

嘗試將val($(div)更改爲val($('div') –

回答

2

一個可能的錯誤this不被包裹在$()
二是div是沒有單引號。

$(this).parent('tr').find('#prijs').val($('div').find($(this).val()).find('#prijs')).val(); 
0

有時難以使用.on。所以請嘗試使用.change而不是下面提到的代碼。

jQuery("select.product").change(function(){ /* Now your code */ });

除此之外,你需要確保你將如何獲取tr。正如你在HTML中提到的那樣,它需要位於select字段的父元素中。

希望這會清除方法!乾杯!

相關問題