Javascript Jquery-动态地将参数传递给函数
我甚至不确定我问的是否正确,但如果我只是展示一下,可能会更容易。基本上,我试图通过Javascript Jquery-动态地将参数传递给函数,javascript,jquery,function,parameters,parameter-passing,Javascript,Jquery,Function,Parameters,Parameter Passing,我甚至不确定我问的是否正确,但如果我只是展示一下,可能会更容易。基本上,我试图通过函数运行每个div的attr,作为参数,并基于该div的attr返回不同的结果 如您所见,示例是当您单击容器div中的链接时出现的一组下拉列表。如果您进行了选择,则会将其保存为父div中的attr。当您单击out时,问题会出现,然后再单击容器。。。它不是用适当的默认值或选择重新显示每个下拉列表,而是镜像它旁边的a的结果 TIA我插入了一些console.log()语句,以查看各种jQuery选择器的情况。我认为:
函数运行每个div
的attr
,作为参数
,并基于该div的attr返回不同的结果
如您所见,示例是当您单击容器div中的链接时出现的一组下拉列表。如果您进行了选择,则会将其保存为父div中的attr。当您单击out时,问题会出现,然后再单击容器。。。它不是用适当的默认值或选择重新显示每个下拉列表,而是镜像它旁边的a
的结果
TIA我插入了一些console.log()
语句,以查看各种jQuery选择器的情况。我认为:
- 当我在第一个“单击”节点中单击时,
\u container
是“top one”
- 因此,在对这三个div的迭代中,您选择了包含在类为“top one”的div中的类为“dd”的两个div
- 传递给函数
select()
的参数\u attr
和\u parent
对于处理的每个节点都是相同的,为两个“dd”框提供相同的结果
我认为您需要更改用于定位要修改的节点的选择器。foo=foo.find('.dropdown toggle').html(_new+'')代码>
这一行有两个div,因此更改了两个值(如果该值是从droplist中选择的)
要正确还原选定的值,请执行以下操作:
function modified(_select) {
console.log("modify");
foo = $('#box').html();
foo = $(_select).html(foo);
// iterate on collection to restore selected value from selection tag;
foo.filter("div[selection]").each(function(i, v){
var selected = $(v).attr('selection');
$(v).find('.dropdown-toggle').html(selected + '<b class="caret"></b>');
});
}
尝试在示例中添加一些注释,这很难阅读,我会立即将变量重命名为比asdf
和eeee
更清晰的名称。对此表示抱歉。检查并添加了注释和更好的变量。从某种意义上说,这就是我想要描述的。所以这不是把某种形式的数组作为参数传递的问题,你不这么认为吗?我不认为问题在于参数和函数调用,我认为这只是选择要处理的对象。如果注释掉else中的行:/$(this.find('.dd').empty()代码>这是否为您提供了所需的行为?否则会显式清除其他两个“顶部”div中的两个div。不完全清除,但这可能必须工作。其思想是,当页面的另一部分被占用时,它们隐藏或转到纯文本。哦,好吧。。。我感谢你的帮助
if($(y).filter("div[selection]").length > 0){
return modified(y);
}