0

谁能告诉我下面的脚本可能有什么问题?

它应该在类名中查找最后一个带有#objec 的 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;
});
});
4

3 回答 3

1

这种用法适用于 ID 。如果 objec 是一个 ID,你可以使用下面的

 $("#objec:last>input")

在你的情况下,它是一个类名

所以试试

  $(".objec")
于 2012-07-19T14:12:06.187 回答
0

可能你想要这个:

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

现场演示

阅读Descendant 组合器Child 组合器之间的区别。

于 2012-07-19T14:13:30.743 回答
0

如果我没记错的话,我认为你应该使用“。” 引用类与 id 时的选择器。ex/ $(".objec:last>input").attr("name");

于 2012-07-19T20:54:12.843 回答