我有一个ascx控件,其中包含我希望能够使用JavaScript重置的下拉框。 因为ascx控件在aspx页面上多次呈现,所以我以编程方式为每个下拉列表添加一个区别字段,例如ascx后面的代码:
var g = Guid.NewGuid().ToString().Replace("-", "");
DropDownListBool.Attributes.Add("jqID", "ddBool" + g);
DropDownListEqual.Attributes.Add("jqID", "ddEq" + g);
在渲染页面上,当我想重置其中一个控件的下拉列表时,我有一个超链接调用一个javascript函数,其中g作为参数。
在javascript中,使用jquery,我尝试为这个特定的ascx控件获取两个下拉列表:
function clearControl(g) {
var dds = $("select[jqID = 'dd\\S*" + g + "']");
}
然后我做了:
jQuery.each(dds, function(i, val) { val.select = 0; });
这应该有用吗?现在它正在重置看似随机的下拉框。 属性长度是否有限制?
答案 0 :(得分:1)
我认为使用其他选择器可能会更好,比如“ends with”属性选择器。
var dds = $("select[jqID$='" + g + "']");
如果您需要根据以dd
开头并以g
的值结尾进行选择,则可以使用过滤器并同时使用“结束”和“starts with”;
var dds = $("select[jqID^='dd']").filter( "[jqID$='" + g + '']");
据我所知,在使用equals选择器属性时,不能使用正则表达式。我很惊讶它对你有用。