javascript - 不同部分的相同功能 - jquery 中的相对引用

标签 javascript jquery

通过使用相对引用,我可以删除已添加到表单特定部分的列表中的项目。例如,通过添加需求,可以将其从需求中删除。

我的问题有两个:

  1. 将项目添加到引用文献中会将其添加到所有三个类别
  2. 当我尝试向其他部分(资格)添加值时,它显示我的输入为空。

http://jsfiddle.net/spadez/9sX6X/60/

var container = $('.copies'),
    value_src = $('#current'),
    maxFields = 10,
    currentFields = 1;

$('.form').on('click', '.add', function () {
      value_src.focus();
    if ($.trim(value_src.val()) != '') {
        if (currentFields < maxFields) {
            var value = value_src.val();
            var html = '<div class="line">' +
                '<input id="accepted" type="text" value="' + value + '" />' +
                '<input type="button" value="X" class="remove" />' +
                '</div>';

            $(html).appendTo(container);
            value_src.val('');
            currentFields++;
        } else {
            alert("You tried to add a field when there are already " + maxFields);
        }
    } else {
        alert("You didn't enter anything");
    }

})
    .on('click', '.remove', function () {
        value_src.focus();
    $(this).parents('.line').remove();
    currentFields--;
});

是否可以通过使用相对引用(例如“父级”)来修改此代码,而无需在每个部分重复它。我想对所有三个部分使用相同的脚本,但拥有它,因此每个列表都是独立的。

我是 javascript 新手,所以我想知道这是否可能,因为我只设法让它在删除时工作。

最佳答案

您必须使用this获取当前元素。在你的情况下this指的是被点击的按钮。
下一步是获取属于按钮的输入框。例如。 $(this).prev();就像这个例子一样:

$('.form').on('click', '.add', function () {
   var value_src = $(this).prev();

http://jsfiddle.net/9sX6X/62/

您的附加部分也是如此。您正在将 html 附加到与 $('.copies') 匹配的所有三个元素中。相反,您必须尝试从 this 到达那里.

$('.form').on('click', '.add', function () {
   var value_src = $(this).prev();
   var copies = $(this).parent().prev();

http://jsfiddle.net/9sX6X/63/

关于javascript - 不同部分的相同功能 - jquery 中的相对引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17195092/

相关文章:

jquery - 多维菜单悬停问题

javascript - CSS : Div placement in column

javascript - 处理结束后全局变量是否存储在浏览器中?

javascript - Angular 圆菜单 CSS 和 jQuery

javascript - jQuery .on click 仅在第一次适用于动态元素

javascript - 有没有办法向 jquery 的 $.ajax 函数添加额外的行为

javascript - 您如何动态捕获 ID 并更改内容?

javascript - 使用 AngularJS 从 JSON 数据库中获取数据并将其显示到文本框

javascript - React Native - super 表达式必须为空或函数

javascript - jQuery 在输入检查时增加/减少值