Javascript 无法读取显然未定义-已解决的的的未定义的属性
我使用的是Telerik(AutoCompleteBox)控件,它包含一个嵌入式下拉控件,可以通过属性_下拉菜单访问该控件。我正在使用dropDownItemDataBound事件触发以下代码:Javascript 无法读取显然未定义-已解决的的的未定义的属性,javascript,arrays,Javascript,Arrays,我使用的是Telerik(AutoCompleteBox)控件,它包含一个嵌入式下拉控件,可以通过属性_下拉菜单访问该控件。我正在使用dropDownItemDataBound事件触发以下代码: var autoComplete = $find("<%= RadAutoCompleteBox1.ClientID %>"); console.log(autoComplete._dropDown._items); 因此我认为我可以做到这一点: var autoCom
var autoComplete = $find("<%= RadAutoCompleteBox1.ClientID %>");
console.log(autoComplete._dropDown._items);
因此我认为我可以做到这一点:
var autoComplete = $find("<%= RadAutoCompleteBox1.ClientID %>");
console.log(autoComplete._dropDown._items[0]._text); // Chevrolet TRAVERSE
console.log(autoComplete._dropDown._items[0]._value); // GM1
它将返回正确的数据。最可能的解释是,
自动完成。\u下拉列表。\u尝试记录项目文本时,项目仍未定义。浏览器控制台显示在填充时更改的活动对象。检查此示例:是否确定自动完成。\u下拉列表。\u项目实际上至少有一个元素?向我们展示console.log(autoComplete.\u下拉列表.\u items)
@Barthy这就是OP正在做的事情;问题是输出的第一行,[]
表示在console.log调用时数组是空的。是否确定位于索引0处的项未定义?通常可以等待
或使用回调;人们不应该依赖于超时。
var autoComplete = $find("<%= RadAutoCompleteBox1.ClientID %>");
console.log(autoComplete._dropDown._items[0]._text); // Chevrolet TRAVERSE
console.log(autoComplete._dropDown._items[0]._value); // GM1
waitAndDisplay();
function waitAndDisplay(timeout = 50) {
setTimeout(function () {
var autoComplete = $find("<%= RadAutoCompleteBox1.ClientID %>");
console.log(autoComplete._dropDown._items[0]._text);
}, timeout);
}
function OnClientRequested(sender, eventArgs) {
var myarray = eventArgs.get_data();
console.log(myarray[0].Text);
console.log(myarray[0].Value);
}