2012-07-19 85 views
0

任何人都可以請告知下面的腳本可能有什麼問題嗎?將DIV行添加到現有行中

它應該在類名稱中查找帶#objec的最後一個DIV,然後查找DIV中的最後一個輸入元素,然後在已有的DIV下面添加一個帶有遞增ID /名稱的新DIV。我認爲這是這是會錯行:

var name = $("#objec:last>input").attr("name"); 

的代碼是在這裏:http://jsfiddle.net/mtait/9MbQH/6/

...以下。

謝謝

馬克

<label id="add_tag"> 
    Click me to add a new row 
</label> 


<div class="objec"> 
    <div class="row"> 
     <div class="span4"> 
      <input class="span4" data-val="true" data-val-required="Objective&#32;is&#32;required" id="Objectives_7__objective" name="Objectives[7].objective" type="text" value="Timecard Completion" /> 
     </div> 
    </div> 
</div> 


$(document).ready(function() { 
var re = /\[(.*?)\]/; 
$("#add_tag").click(function() { 
    var name = $("#objec:last>input").attr("name"); 
    var m = re.exec(name); 
    var itemNumber = parseInt(m[1]) + 1; 
    var $newdiv1 = $('<div class="objec"><div class="row"><div class="span4"><input class="span4" data-val="true" data-val-required="Objective&#32;is&#32;required" id="Objectives_' + itemNumber + '__objective" name="Objectives[' + itemNumber + '].objective" type="text" value="..." /></div></div>'); 
    $(".objec:last").after($newdiv1); 
    return false; 
}); 
}); 
+0

對於除了對象和行之外的其他類別,我還沒有更好的名字!你現在是否得到任何錯誤 – zod 2012-07-19 14:09:51

回答

0

也許你想這樣的:

var name = $(".objec:last input").attr("name"); 

Live demo

瞭解Descendant combinatorChild combinators之間的區別。

+0

Thankyou - 它是> - 當被一個空間替換時,它工作!當SO允許時,我會標記爲答案。謝謝,馬克 – Mark 2012-07-19 14:16:31

1

這種類型的使用是ID。如果objec是一個ID,你可以在你的情況下,它的類名使用下面

$("#objec:last>input") 

所以儘量

$(".objec") 
+0

沒有工作 - 但謝謝你的嘗試 - 下面的答案然而。 – Mark 2012-07-19 14:16:51

0

如果我沒有弄錯,我認爲你應該使用「。」。選擇器引用類與id時的選擇器。 ex/$(「。objec:last> input」)。attr(「name」);