通过动态创建的按钮获取动态文本字段的ID

尼莉

参见下面的代码。我正在动态创建两个文本字段。在这些文本字段之一中,还会创建2个按钮。当单击这些按钮中的任何一个时,如何获取没有按钮的文本字段的ID?

<button type="button" id="tfButton">Add text</button>
<div id="InputsWrapper"></div>
<div id="OuterWrapper"></div>

$(document).ready(function() {
    var tfCont = 0;
    var InputsWrapper = $("#InputsWrapper");
    var x = InputsWrapper.length; 
    var namefield = $("#tfButton");

    $(namefield).click(function() {
        tfCont++;

        $(InputsWrapper).append('<div>' + '<div class="name" id="InputsWrapper_0' + tfCont + '">' + '<input type="textarea" id="field_' + tfCont + '" class="fTypex" placeholder="Thought of the day..." data-tfcount="' + tfCont + '"/><button type="button" runclass0">Run</button><button type="button" class="removeclass0">Next</button>' + '<br>' + '</div>' + '</div>');

         $("#OuterWrapper").append('<div id="textLayer_' + tfCont + '">' + '<input type="textarea" id="tf_' + tfCont + '" data-tfcount="' + tfCont + '">' + '</div>');

        x++;
        return false;
    });

    $(document).on("click blur keyup", "input.fTypex", function() {
        var tfc = $(this).data("tfcount");
        $("#tf_" + tfc).val(this.value);
    });
});
SpYk3HH

你的意思是这样吗?

我知道我没有使用您的数据属性。但是,有数百万种方法可以重新包含它们,我只是认为最好向您展示一种更简单的方法,而不依赖于使用数据找到的多个相似ID。无论如何,对我来说,那样看来似乎需要更多的工作和头痛。

jsFiddle:实时示例

$(function() {
    function createFields(e) {
        var inWrap = $('<div />', { class: 'name-wrapper' }),
            nameWrap = $('<div />', { class: 'name' }).appendTo(inWrap),
            outWrap = $('<div />');

        nameWrap.append(
            $('<input />', { class: 'fTypex', placeholder: 'Thought of the day...', type: 'textarea' }),
            $('<button />', { text: 'Run', type: 'button' }),
            $('<button />', { text: 'Next', type: 'button' })
        );

        outWrap.append(
            $('<input />', { type: 'textarea' })
        );

        $('#InputsWrapper').append(inWrap);
        $('#OuterWrapper').append(outWrap);
    }

    $(document)
        .on('click', '#tfButton', createFields)
        .on('click', '#InputsWrapper button', function(e) {
            var i = $(this).closest('.name-wrapper').index(),
                inp = $('#OuterWrapper input')[i],
                $inp = $(inp);

            console.log(i, inp, $inp);

            //  could use like
            $('.highlight').removeClass('highlight');
            $inp.addClass('highlight');
        })
})

而且,如果您坚持使用自己的数据属性以及怪异的runclass0attr和其他类,那么这里还有另外一个小提琴,其中包括那些小物件。您会注意到在结构上几乎没有任何变化。

Alt jsFiddle

$(function() {
    function createFields(e) {
        var inWrap = $('<div />', { class: 'name-wrapper' }),
            nameWrap = $('<div />', { class: 'name' }).appendTo(inWrap),
            outWrap = $('<div />'),
            iCnt = $('#InputsWrapper .name-wrapper').length + 1;

        nameWrap.append(
            $('<input />', { class: 'fTypex', 'data-tfcount': iCnt, id: 'field_'+iCnt, placeholder: 'Thought of the day...', type: 'textarea' }),
            '<button runclass0 type="button">Run',
            $('<button />', { class: 'removeclass0', text: 'Next', type: 'button' })
        );

        outWrap.append(
            $('<input />', { 'data-tfcount': iCnt, id: 'tf_'+iCnt, type: 'textarea' })
        );

        $('#InputsWrapper').append(inWrap);
        $('#OuterWrapper').append(outWrap);
    }
    $(document)
        .on('click', '#tfButton', createFields)
        .on('click', '#InputsWrapper button', function(e) {
            var i = $(this).closest('.name-wrapper').index(),
                inp = $('#OuterWrapper input')[i],
                $inp = $(inp);

            //  see console for more info: F12 in most of today's browsers
            if (console['log']) console.log(i, inp, $inp);

            //  could use like
            $('.highlight').removeClass('highlight');
            $inp.addClass('highlight');
        })
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Jasper报告-水平对齐动态文本字段及其标签

来自分类Dev

创建一个动态文本字段来根据选择列表选择更改内容?

来自分类Dev

访问动态文本字段值android

来自分类Dev

动态调整SWT文本字段的大小

来自分类Dev

动态获取按钮ID

来自分类Dev

在动态文本字段中显示记录的计数器

来自分类Dev

动态文本字段颜色更改

来自分类Dev

如何获取动态创建的提交按钮的发件人ID?

来自分类Dev

如何为文本字段创建动态颜色?

来自分类Dev

有没有办法在tkinter中获取动态添加的文本字段的值?

来自分类Dev

在Blazor App中使用值动态创建文本字段

来自分类Dev

vue / vuetify动态修改v文本字段属性

来自分类Dev

动态隐藏v文本字段

来自分类Dev

使用jQuery无法获取动态文本字段值

来自分类Dev

验证动态创建的文本字段

来自分类Dev

ajax在div中动态创建dojo文本字段?

来自分类Dev

获取动态创建的行的ID

来自分类Dev

如何获取动态创建的输入文本字段的值?

来自分类Dev

在动态创建的表中从文本字段获取数据

来自分类Dev

iOS创建仅数字的动态文本字段

来自分类Dev

在wicket中动态添加文本字段并在按钮单击事件上的表单中下拉。

来自分类Dev

创建文本字段和按钮以编程方式单击按钮获取文本字段文本

来自分类Dev

所选复选框(动态创建)的值应设置为目标文本字段

来自分类Dev

如何获取动态创建的文本字段的值

来自分类Dev

如何基于php中的下拉选择动态获取文本字段中的内容

来自分类Dev

我正在通过jQuery动态添加文本字段,并且文本字段的ID没有增加

来自分类Dev

JavaFX:获取动态创建的按钮的ID

来自分类Dev

以角度动态创建输入文本字段的验证检查

来自分类Dev

实例化动态文本字段

Related 相关文章

  1. 1

    Jasper报告-水平对齐动态文本字段及其标签

  2. 2

    创建一个动态文本字段来根据选择列表选择更改内容?

  3. 3

    访问动态文本字段值android

  4. 4

    动态调整SWT文本字段的大小

  5. 5

    动态获取按钮ID

  6. 6

    在动态文本字段中显示记录的计数器

  7. 7

    动态文本字段颜色更改

  8. 8

    如何获取动态创建的提交按钮的发件人ID?

  9. 9

    如何为文本字段创建动态颜色?

  10. 10

    有没有办法在tkinter中获取动态添加的文本字段的值?

  11. 11

    在Blazor App中使用值动态创建文本字段

  12. 12

    vue / vuetify动态修改v文本字段属性

  13. 13

    动态隐藏v文本字段

  14. 14

    使用jQuery无法获取动态文本字段值

  15. 15

    验证动态创建的文本字段

  16. 16

    ajax在div中动态创建dojo文本字段?

  17. 17

    获取动态创建的行的ID

  18. 18

    如何获取动态创建的输入文本字段的值?

  19. 19

    在动态创建的表中从文本字段获取数据

  20. 20

    iOS创建仅数字的动态文本字段

  21. 21

    在wicket中动态添加文本字段并在按钮单击事件上的表单中下拉。

  22. 22

    创建文本字段和按钮以编程方式单击按钮获取文本字段文本

  23. 23

    所选复选框(动态创建)的值应设置为目标文本字段

  24. 24

    如何获取动态创建的文本字段的值

  25. 25

    如何基于php中的下拉选择动态获取文本字段中的内容

  26. 26

    我正在通过jQuery动态添加文本字段,并且文本字段的ID没有增加

  27. 27

    JavaFX:获取动态创建的按钮的ID

  28. 28

    以角度动态创建输入文本字段的验证检查

  29. 29

    实例化动态文本字段

热门标签

归档