如何处理在运行时添加的HTML元素?

时间:2018-06-29 07:00:09

标签: javascript html

我正在处理的代码首先调用数据库。通过此呼叫,确定办公室中是否有可用的工作站。 如果有可用的工作站,则将“选项”元素添加到“选择”元素中。这是通过jquery实现的:

$('#idofselectelement').html(data)

其中“数据”代表要插入“选择”元素中的标记。

现在,我的问题是我正在尝试实现一些代码,该代码检查在选定的时间范围内您的“最喜欢的工作站”是否可用,然后从“选择”元素的下拉菜单中自动预选相应的工作站。到目前为止,一切正常,除了从下拉菜单中选择工作站:/ 部分 我对使用javascript和HTML DOM进行编程还很陌生,所以我不确定是否在运行时添加了试图从中选择的选项?

我尝试操作下拉菜单的代码如下:

$('#idofselectelement').val(favoriteworkstation);

但是,正如我所说,这是行不通的。 我还已经尝试在添加了带有可用选项的标记的代码运行后立即输出(console.log)select元素的length属性。 但是根据输出Im得到,长度为零Oo 但是,肯定会创建dropdownmenu,我确实可以操纵它,但不幸的是,它不是我想要的方式。 如果我添加一个onclick事件来设置各个select元素的值,那么select字段中的值确实更改为事件处理程序中指定的值。 因此,我想知道为什么在选择了时间范围之后为什么无法预先选择喜欢的工作站...

编辑: 为了进一步了解该问题,我在这里添加了更多代码。 这是在运行时添加任何内容之前HTML Select元素的外观:

<label for="#sitz">Sitz Nr.</label>
<select type="text" class="form-control" id="sitz" name="sitz" value="">

在运行时添加的标记

<option>workstationvalue</option>
<option>workstationvalue</option>
//and so on, depending on the situation...

1 个答案:

答案 0 :(得分:0)

这是一个计时问题。

试图查找元素的js比将元素实际添加到DOM的速度快。

你能描述你想做什么吗?在将元素添加到DOM之前,您也许可以做到这一点。

如果将String转换为jQuery对象,则可以在添加到DOM之前进行编辑

var $jqueryObject = $(data);
$jqueryObject.find('.classYouSearch').val(value);
$('.whereToAd').html($jqueryObject);