Javascript 无法在表行上设置焦点

Javascript 无法在表行上设置焦点,javascript,interop,blazor,Javascript,Interop,Blazor,我试图在组件初始化时将焦点设置在表行上,使用interop <table class='table'> <thead> <tr>value</tr> </thead> <tbody> @foreach (var elem in this.data) { <tr id="@elem.toString()">&l

我试图在组件初始化时将焦点设置在表行上,使用
interop

<table  class='table'>
     <thead>
         <tr>value</tr>
    </thead>
     <tbody>          
        @foreach (var elem in this.data) {
           <tr id="@elem.toString()"><td>@elem</td></tr>
     </tbody>
 </table>


@functions()
{
     protected int []data=new int[]{1,2,3,34};
     protected override async Task OnInitAsync() {
                if (data.Length > 0) {
                    var elementName= data.First().ToString();
                    await JSRuntime.Current.InvokeAsync<string>("methods.focus", elementName);;
                }
            }

}

p.S在浏览器中调试时,我在
focus
方法中获得了正确的
elementName
,但是
document.getElementById
返回空元素。我是否需要先获取table元素,然后搜索其中的行?

您不能在td或tr元素上设置焦点。但是,可以在td元素中放置输入元素,然后设置焦点


希望这有助于

@Pete,不一样。。。这里讨论的是blazor。我还要补充一点,您应该使用ElementRef vs.ID。ElementRef是实现这一点的“blazor方式”。
window.methods={
    focus: function (elementName) { //i get the right id 
            var element = document.getElementById(elementName);//returns null
            element.focus();
        }
}