我正在尝试将一些js文件转换为在asp.net webforms中使用typescript.javascript工作但由于错误,它不会在ts中编译.这是代码
var mDropDownID = arySecondTier[x];
var DropdownList = (document.getElementById("ctl00_ContentPlaceHolder1_lvCASec2_Detail_ctrl" + mDropDownID + "_ddlPoints"));
var SelectedIndex = DropdownList.selectedIndex;
Run Code Online (Sandbox Code Playgroud)
在selectedIndex行上发生错误.从我用typescript读到的内容,HTMLElement上没有selectedIndex,我需要使用HTMLElement的子类型.如果是这种情况,我将无法找到该子类型的名称.如果它是别的东西,那么我很想知道什么.
我见过一些将DropDownList转换为的人,但我的第一个想法并不是你想要使用打字稿的原因.
谢谢
Nit*_*mer 12
你只需要让编译器认为DropdownList是一个select元素:
var DropdownList = (document.getElementById("ctl00_ContentPlaceHolder1_lvCASec2_Detail_ctrl" + mDropDownID + "_ddlPoints")) as HTMLSelectElement;
var SelectedIndex = DropdownList.selectedIndex; // no error
Run Code Online (Sandbox Code Playgroud)
此外,您可以这样做:
`ctl00_ContentPlaceHolder1_lvCASec2_Detail_ctrl ${ mDropDownID } _ddlPoints`
Run Code Online (Sandbox Code Playgroud)
而不是字符串连接.
根据dom中的实际元素,您知道需要哪种类型的元素.
如果你得到一个脚本元素的引用,那么它需要是a HTMLScriptElement,如果它是div然后HTMLDivElement依此类推.
MDN是一个很好的信息来源,但在这种情况下,我只需检查lib.d.ts(也应该从你的IDE中获得)来查看这个元素有什么.
例如,HTMLScriptElement具有:
interface HTMLScriptElement extends HTMLElement {
async: boolean;
charset: string;
defer: boolean;
event: string;
htmlFor: string;
src: string;
text: string;
type: string;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5930 次 |
| 最近记录: |