2013-09-16 146 views
0

我不知道如何搜索這個,所以如果之前已經問過這個道歉。基本上我使用jQuery/AJAX/PHP動態保存到數據庫,拉回信息等。我做了我的表格保存並拉回房間的ID,然後保存項目的ID,但是我需要一種方法動態地將房間ID保存到它的子項目中,這樣它們都鏈接到數據庫中。我會盡力解釋我能做的一切。動態獲取元素的屬性?

<div id="formHolder" rel="1"> 
      <form class="rooms"> 
       <label>Room</label> 
       <input type="text" name="roomName[]"> 
       <input type="hidden" class="roomId" name="roomId[]"> 
       <input type="hidden" class="inventoryId" name="inventoryId[]" value="<?=$_GET['inventory_id']?>"> 
       <div class="saveRoom">Save Room</div> 
      </form> 
      <div class="addItem"> 
       <form class="items"> 
        <label>Item</label> 
        <input type="text" name="itemName[]"> 
        <label>Description</label> 
        <textarea name="itemDescription[]"></textarea> 
        <label>Condition</label> 
        <select name="itemCondition[]"> 
         <option value="Good">Good</option> 
         <option value="Adequate">Adequate</option> 
         <option value="Poor">Poor</option> 
        </select> 
        <input type="hidden" class="itemId" name="itemId[]" value=""> 
        <input type="hidden" name="itemInventoryId[]" value="<?=$_GET['inventory_id']?>"> 
        <input type="hidden" name="itemParent[]" value=""> 
        <div class="saveIcon" style="display: none; color: green;">SAVED!</div> 
        <div class="save">Save Item</div> 
       </form> 
      </div> 
      <div id="addItem">Add another item</div> 
     </div> 

這是我正在使用的基本形式。我的計劃是將房間的ID保存到rel屬性中,然後每個添加的項目都會從那裏獲取該ID,但我根本無法解決如何去做。

$('#addItem').on('click', function(){ 
      $('<form class="items">\ 
       <label>Item</label>\ 
       <input type="text" name="itemName[]">\ 
       <label>Description</label>\ 
       <textarea name="itemDescription[]"></textarea>\ 
       <label>Condition</label>\ 
       <select name="itemCondition[]">\ 
        <option value="Good">Good</option>\ 
        <option value="Adequate">Adequate</option>\ 
        <option value="Poor">Poor</option>\ 
       </select>\ 
       <input type="hidden" class="itemId" name="itemId[]" value="">\ 
       <input type="hidden" name="itemInventoryId[]" value="<?=$_GET["inventory_id"]?>">\ 
       <input type="hidden" name="itemParent[]" value="'$(this).parent().parent().attr('rel');'">\ 
       <div class="saveIcon" style="display: none; color: green;">SAVED!</div>\ 
       <div class="save">Save Item</div>\ 
      </form>').fadeIn(500).appendTo('.addItem'); 
     }); 

你可以看到我一直在使用$(this).parent().parent().attr('rel');試過,但還是不行,所以我很爲難。我知道我在這裏鬆了一口氣,如果有人想和我打開一個聊天請做,謝謝你的時間

+5

不管你做什麼,或者解決的辦法是做用戶永遠之類的東西.parent()。父()總有一天你的代碼會變得糟糕AK,你會花幾個小時想知道爲什麼。 – bitoiu

+0

@bitoiu - 想給你的評論+1千倍。 – EkoostikMartin

+0

謝謝,不錯的建議:) –

回答

1

它會正常工作,但你會上漲太多的水平!與rel ATTR股利只是parent,不是父母父:

$(this).parent().attr('rel'); 

或者,因爲你的父母有一個ID(其中最好是獨一無二的!):

$("#formHolder").attr("rel"); 
+0

會給這個去2秒: ) –

+0

這似乎工作:)我對DOM樹感到困惑,並認爲我本來是要上升到另一個級別!快去嘗試一些其他的動態的東西,但很感謝你在這 –

+0

幫助你沒問題,一定要接受答案一旦亞能:D – tymeJV

0

這是指「 #addItem」分區和‘相對’是它的一個屬性是直接父,所以我覺得應該是剛剛

$(this).parent().attr('rel');