2012-07-19 54 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”);