#javascript #jquery #asp.net #html #clone
#javascript #jquery #asp.net #HTML #клонировать
Вопрос:
Я новичок в jQuery, и у меня возникли некоторые проблемы с функцией Clone().
Мой вопрос в том, как я могу ограничить количество раз, когда ответы могут быть клонированы? Должен ли я объявлять переменную и запускать ее через цикл, пока не будет достигнуто желаемое число?
Вот .aspx
> <div id="answer_wrapper">
> <div id="answer">
> <h3 class="new">Answer 1</h3>
> <asp:TextBox ID="QuestionAnswer1" runat="server" CssClass="form" Width="300px"></asp:TextBox>
> </div>
> <h3 class="new">Answer 2</h3>
> <asp:TextBox ID="QuestionAnswer2" runat="server" CssClass="form" Width="300px"></asp:TextBox>
> </div> <!-- end answer_wrapper -->
> <br />
> <asp:Button ID="ga" runat="server" CssClass="button_add_question" style="border: 0px;" />
> <a id="foo" href="#">Duplicate</a>
> <script type="text/javascript">
> $('#foo').click(function () {
> $('#answer').clone().appendTo('#answer_wrapper');
> });
> </script>
Любая помощь была бы очень признательна, поскольку я действительно не знаю, как подойти к этому.
Ответ №1:
Похоже, что ваш код приведет к созданию нескольких элементов с одинаковым идентификатором, что не идеально, но чтобы ответить на ваш вопрос, возможно, сделайте это:
<script type="text/javascript">
var limit = 10;
$('#foo').click(function () {
if($('#answer').length < limit) {
$('#answer').clone().appendTo('#answer_wrapper');
}
});
</script>
Комментарии:
1. Вы упомянули части кода, которые будут дублировать идентификаторы. О какой части я должен беспокоиться?
Ответ №2:
Вы можете либо ограничить количество клонированных divs, установив var вне события click и увеличив его значение, либо вы можете подсчитать количество divs.
Я ожидаю, что вы тоже захотите изменить или удалить идентификатор.
<script type="text/javascript">
var count = 1;
$('#foo').click(function () {
if(count < 5) {
$('#answer').clone().attr({ 'id': 'answer' count }).appendTo('#answer_wrapper');
//$('#answer').clone().removeAttr('id').appendTo('#answer_wrapper'); // remove the attribute
count ;
}
});
</script>
подсчет divs:
<script type="text/javascript">
$('#foo').click(function () {
if($('.answer').length < 5) { // Hope you add a class to the answer
$('#answer').clone().addClass('answer').removeAttr('id').appendTo('#answer_wrapper');
}
});
</script>
Комментарии:
1. Отличное решение. Простой и аккуратный. Спасибо