你好,我有一个有趣的。点击一个动态创建的选择使用Javascript/jQuery选择其他动态内容
我目前正在为我的工作中的一个侧面项目开发一个小的Chrome扩展。该扩展只是将一个div附加到页面的右侧,并为用户提供“快速链接”和输入。而不是尝试点击树形菜单,选择正确的选项,然后更改textarea。我在我的扩展程序上有按钮,可以在其中设置值并单击“应用”。发生了什么是我们有一个网络应用程序,有一堆动态加载<select>
。有一个包含链接的树形菜单。当树菜单中的项目被选中时,它将动态地加载几个包含<select>
的div。
我想要做的是以编程方式更改选定的选项,该选项应该依次触发另一个由Web应用处理的事件来调用某些动态内容。
选择将转到正确的值,但Web应用程序没有注册为任何更改。
*** ***编辑 这里的页面是什么样子的例子:https://jsfiddle.net/tpkn92o8/6
编辑下面
在web-app的工作原理是这样的(以下逻辑被烘焙到网络应用程序,我无法控制这个):
- 在树形菜单中的项被选中。这将ping家,并动态地加载一些内容到蓝色选择。
- 由于蓝色选择被改变,触发
change
事件,绿色选择动态获取加载。 - 再次由于绿色选择触发了一个
change
事件,它将动态更新textarea值。
我想要做的是,一旦一切都装,我希望能够改变绿色的价值选择,这将使在web-app触发这种改变和更新textarea的,即
$("#dynamic-content-2 select").val('some new value').change()
会给我们
<textarea value="some new value"></textarea>
但不幸的是,选择会得到改变,但不会触发TE xtarea更新
其次编辑
var updatedVal = 'a new value I get from an array';
window.addEventListener ("load", setupEventHandlers, false);
function setupEventHandlers(){
var jsInitChecktimer = setInterval (checkForJS_Finish, 111);
function checkForJS_Finish() {
// the select I want to manipulate gets loaded when the radio is checked and a different select has a certain value
if (document.querySelector("#myRadio:checked") && $("#parentSelect").val() == "100") {
clearInterval (jsInitChecktimer);
console.log('loaded');
$("#changeSelect_Button").on("click", function() {
$("#mySelect").val(updatedVal).change();
});
}
}
}
在你的小提琴中,带有id ** dynamic-content-2 **的元素是'div',而不是'select'。所以你的代码'$(“#dynamic-content-2”).val('some new value')。change()'会在错误的标签上工作。 – trincot
这只是为了显示什么/哪里的东西比实际的原型更多的布局。对不起,那里有混乱。 – meepz