【问题标题】:How to get the index of a parent of the item from where the click event was triggered如何获取触发点击事件的项目的父项的索引
【发布时间】:2015-09-29 11:09:18
【问题描述】:

所以我有这支笔里的代码:http://codepen.io/Cristian_N/pen/PPbBde?editors=101

为了解释我在那里做了什么,我添加了一个按钮,当它被点击时会附加一个字段集。

在该字段集中(原始的和附加的)还有一个按钮,可以将输入附加到字段集中的 div。

我想要做的是:当我添加多个输入元素时,这些输入元素应该获取父字段集的索引号,同时增加操作号。我管理了操作编号部分的递增。有什么办法可以让它用javascript/jquery获取字段集索引号?

我的html:

<div class="row">
    <div class="large-10 columns large-centered">
        <form id="client-details" class="" method="post" action="action-write.php">
            <div id="client-details-form">
                <label>First Name
                    <input type="text" name="clients[0][firstName]">
                </label>

                <label>Last Name
                    <input type="text" name="clients[0][lastName]">
                </label>

                <label>Date
                    <input type="text" name="clients[0][created]" value="20-sept-2015">
                </label>

                <fieldset class="eq-grup-0">
                    <legend>Equipment</legend>

                    <label>
                        <input type="text" name="clients[0][equipment][0][name]">
                    </label>

                    <div class="op-field">
                        <div class="row collapse">
                            <div class="small-2 columns">
                                <span class="prefix">Operatiune</span>
                            </div>
                            <div class="small-6 columns">
                                <input type="text" name="clients[0][equipment][0][operations][0][name]">
                            </div>
                            <div class="small-3 columns">
                                <span class=" postfix add-op" id="add-op">Adauga Operatiune</span>
                            </div>
                        </div>
                    </div>
                    <span class="button small" id="add-eq-group">Add Eq</span>
                </fieldset>
            </div>
            <input type="submit" class="button" value="Submit">
        </form>
    </div>
</div>

我的 jQuery:

var i = $('#client-details fieldset').size();

var k = $('.op-to-be-removed', $(this).parent('fieldset')).index();

$("#client-details-form").on("click", "#add-eq-group", function(){ 
    $("#client-details-form").append('<fieldset class="eq-to-be-removed eq-grup-' + i + '"><legend>Equipment</legend><label><input  type="text"name="clients[<?php echo $c; ?>][equipment][' + i + '][name]"></label><div class="op-field"><div class="row collapse"><div class="small-2 columns"><span class="prefix">Operatiune</span></div><div class="small-6 columns"><input type="text" name="clients[<?php echo $c; ?>][equipment][' + i + '][operations][0][name]"></div><div class="small-3 columns"><span class=" postfix add-op" id="add-op">Adauga Operatiune</span></div></div></div><span class="button small remove_eq">Remove Eq</span></fieldset>');
    i++; 
});

$("#client-details-form").on("click", ".remove_eq", function(){
    if( i > 0 ) {
        $(this).closest(".eq-to-be-removed").remove();
        i--;
    }
});

$("#client-details-form").on("click", "#add-op", function() {
    var j = $('.op-to-be-removed', $(this).closest('.op-field')).size() + 1;

    $(this).closest(".op-field").append('<div class="row collapse op-to-be-removed"><div class="small-2 columns"><span class="prefix">Operatiune</span></div><div class="small-6 columns"><input type="text" name="clients[<?php echo $c; ?>][equipment][' + k + '][operations][' + j + '][name]"></div><div class="small-3 columns"><span class="postfix remove_op">Sterge</span></div></div>');
    j++;
});

$("#client-details-form").on("click", ".remove_op", function(){
    if( j > 1 ) {
        $(this).closest(".op-to-be-removed").remove();
        j--;
    }
});

【问题讨论】:

  • (如果可以的话)给我们一个例子描述那些输入元素应该得到父字段集的索引号,同时增加操作数
  • 类似 this?
  • @GuruprasadRao 类似的东西。与此同时,我设法弄明白了,并用解决方案here 更新了原来的笔。我把这个var k = $($(this).closest('fieldset')).index(); 用于k
  • 您可以将其作为解决方案发布并接受它作为答案,以便其他人发现它有用.. :)

标签: javascript jquery html css


【解决方案1】:

与此同时,我设法解决了这个问题,并使用解决方案 here 更新了原始笔。我把这个var k = $($(this).closest('fieldset')).index(); 用于k

【讨论】:

    猜你喜欢
    • 2017-11-20
    • 1970-01-01
    • 2013-11-28
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    相关资源
    最近更新 更多