我允许用户复制一组元素(他们可以多次执行此操作)来执行此操作我使用以下命令
$('#newRoom').click(function () {
var $copia = $('.room').children('*').clone();
$("#accordion").append($copia);
})
每个组都有一个输入供用户输入标题和标题本身。然后,用户输入填充标题标题:见下文
var title = $("#title");
$("#txtTitle").keyup(function () {
title.html(this.value);
});
当我只有一个我定位的组时,这种方法有效,但是一旦添加了第二个,第三个等,它就会失败。我知道我可以将id
更改为class
,然后更改keyup
,这将更改具有该类名的每个元素。
所以我想我的问题是,如何定位一个不是孩子或兄弟姐妹的元素。相关的HTML在下面
<div id="roomInfo" class="panel panel-default room">
<div class="panel-heading">
<h4 class="panel-title">
<a id="title" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" class="collapsed">New Room</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" style="height: auto;">
<div class="panel-body">
<row class="col-lg-4">
<input id="txtTitle" class="form-control" placeholder="Title">
</row>
</div>
</div>
</div>
注意:请注意我已经删除了我觉得没必要的所有内容,对不起,如果我为什么做某事的理由不清楚或者我错过了什么,请询问是否需要进一步澄清。
答案 0 :(得分:0)
你提到了id
并不遥远。您需要将一个输入绑定到一个锚点,您执行的操作可能会有所不同。也许你给每个人一个唯一的id后缀或data-id
,你可以使用一些独特的值。或者你可以稍微重构一下你的HTML,这样你就可以“dom-walk”到正确的锚点。
如果每个锚点都在输入附近,您可以使用:
$('input').keyup(function() {
var $elem = $(this);
$elem.prev().text($elem.value());
});
收听每个输入,找到相关的锚点并更新文本。