2009-09-17 77 views
1

我有一個ascx控件,它包含我希望能夠用JavaScript重置的下拉框。 因爲ascx控件呈現多次aspx頁面上,我編程的代碼添加一個顯着的領域,以每個下拉像這樣的ASCX的背後:Jquery和ASCX控件在頁面上多次渲染

var g = Guid.NewGuid().ToString().Replace("-", ""); 
DropDownListBool.Attributes.Add("jqID", "ddBool" + g); 
DropDownListEqual.Attributes.Add("jqID", "ddEq" + g); 

在呈現的頁面,當我想重置其中一個控件的下拉列表,我有一個超鏈接調用一個以g作爲參數的javascript函數。

在JavaScript中,使用jQuery,我試着去理解這樣一個特定的ascx控件兩個下拉菜單:

function clearControl(g) { 
var dds = $("select[jqID = 'dd\\S*" + g + "']"); 
} 

然後我做的:

jQuery.each(dds, function(i, val) { val.select = 0; }); 

如若這項工作?現在它正在重置看似隨機的下拉框。 屬性長度可能有限制嗎?

回答

1

我想你可能會有更好的選擇,比如說「ends with」屬性選擇器。

var dds = $("select[jqID$='" + g + "']"); 

如果您需要選擇基於與dd開始,用g值結束,你可以使用一個過濾器,同時利用「結尾」和「starts with」;

var dds = $("select[jqID^='dd']").filter("[jqID$='" + g + '']"); 

據我所知,當使用屬性equals選擇器時不能使用正則表達式。我很驚訝它對你有用。