动态获取元素的属性?

时间:2013-09-16 18:10:46

标签: javascript php jquery html

我不知道如何搜索这个,所以如果之前有人问过这个道歉。基本上我使用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');,但这不起作用,所以我很难过。我知道我在这里有点胡思乱想,如果有人想和我聊聊,请做,谢谢你的时间

2 个答案:

答案 0 :(得分:1)

它会正常工作,但你的水平太高了! rel attr的div只是parent,而不是父父:

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

或者,因为您的父母有一个ID(最好是唯一的!):

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

答案 1 :(得分:0)

这是指“#addItem”div和“rel”是它的直接父级的属性所以我认为它应该只是

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