Jquery如何定位所需的元素

时间:2015-12-05 00:21:15

标签: jquery

我允许用户复制一组元素(他们可以多次执行此操作)来执行此操作我使用以下命令

$('#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>

注意:请注意我已经删除了我觉得没必要的所有内容,对不起,如果我为什么做某事的理由不清楚或者我错过了什么,请询问是否需要进一步澄清。

1 个答案:

答案 0 :(得分:0)

你提到了id并不遥远。您需要将一个输入绑定到一个锚点,您执行的操作可能会有所不同。也许你给每个人一个唯一的id后缀或data-id,你可以使用一些独特的值。或者你可以稍微重构一下你的HTML,这样你就可以“dom-walk”到正确的锚点。

如果每个锚点都在输入附近,您可以使用:

$('input').keyup(function() {
  var $elem = $(this);
  $elem.prev().text($elem.value());
});

收听每个输入,找到相关的锚点并更新文本。