【问题标题】:JQUERY DOM: Select Elements Created After Dom LoadJQUERY DOM:选择 Dom 加载后创建的元素
【发布时间】:2017-10-02 14:46:01
【问题描述】:

我正在做一个项目,我需要在调用函数时更改某个类的所有选择输入的值。问题是第一次加载dom时一些select输入不存在,它们是通过Javascript动态创建的。

该函数适用于选择页面加载时存在的所有选择输入,但不适用于动态添加到 dom 的任何选择输入。

我了解与 .on 的事件绑定,但在这种特殊情况下,我并不想关闭诸如单击之类的事件。我想在调用这个函数时获取这个类的所有元素。

这是我用来创建新选择元素的代码。

var this_cell = document.getElementById('produce_batch_line_td['+x+']');

var new_select = document.createElement("select");

new_select.name = "produce_batch_line["+x+"]";
new_select.id = "produce_batch_line["+x+"]";        
new_select.className = "produce_batch_line["+invoice_number+"]";

this_cell.appendChild(new_select);

var new_option = document.createElement("option");
new_option.text = "test";
new_option.value = "test";  
new_select.add(new_option);

这是我用来选择这个类的所有选择元素的代码。

function SetDetailValue(invoice_number, obj) {

    $(".produce_batch_line\\["+invoice_number+"\\]").each(function() { 

        this.value = obj.value; 

    });

}

如何将此类的项目动态添加到 dom 中?

【问题讨论】:

  • Prolly 需要查看您的 html 标记来回答这个问题。

标签: javascript jquery html dom


【解决方案1】:

检查此链接。我放了一个已经存在的。当您单击添加按钮时,它也会动态创建。当您单击 set 按钮时,它会使用 java 查询找到它们并将它们放入 for 循环中,该循环将逐个更改每个值。

http://cr8code.co/editor.php?workid=1a446530189d751d0b15ce104a286eee

Here is the DEMO

【讨论】:

  • 感谢您的示例,看起来您正在做我正在做的事情,但我的代码无法正常工作。无论出于何种原因,它现在正在工作,所以我将其标记为已回答。谢谢。
  • 我使用了 'find' 功能来检查当前元素,无论是动态添加的还是在触发该功能时已经存在。这就是为什么我的代码可以找到它们并起作用的原因。顺便说一句,谢谢。
  • @GüneySaramalı 感谢您的演示。你认为你可以使用 StackOverflow 的 <!-- begin snippet: ... > 功能在你的帖子中内联它吗?
猜你喜欢
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 2011-07-06
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多