2

VB脚本语句,

Set oHighlightedRow = document.all("SearchRow" & nHighlightedRow) oHighlightedRow.cells(0).focus()

这两个语句需要转换为javascript。任何人都可以帮我找到解决方案吗?谢谢

我的转换代码是,

var oHighlightedRow = $("#SearchRow" + nHighlightedRow);
oHighlightedRow.cells[0].focus();

它是否正确 ?

4

3 回答 3

5

好的:

var oHighlightedRow = document.all("SearchRow" + nHighlightedRow);
oHighlightedRow.cells[0].focus();

或者,更好(假设该行的 id 为"SearchRow" + nHighlightedRow):

var oHighlightedRow = document.getElementById("SearchRow" + nHighlightedRow);
oHighlightedRow.cells[0].focus();

或者,jQuery(再次假设该行的 id 为"SearchRow" + nHighlightedRow):

$("#SearchRow" + nHighlightedRow + " td:first").focus();
于 2012-12-13T11:13:38.397 回答
2

您不能将表格单元格集中在所有浏览器上。这是 jQuery 文档所说的:

The focus event is sent to an element when it gains focus. This event is implicitly applicable to a limited set of elements, such as form elements (<input>, <select>, etc.) and links (<a href>). In recent browser versions, the event can be extended to include all element types by explicitly setting the element's tabindex property. An element can gain focus via keyboard commands, such as the Tab key, or by mouse clicks on the element.

为了确保这适用于所有浏览器,您可以实现一些 CSS 类并为鼠标键添加事件侦听器。然后只需从表格单元格中添加/删除 css 类。

为了id="target"使用这个来聚焦一个元素

$('#target').focus();
于 2012-12-13T11:17:41.897 回答
0

您可以在 jQuery 库的帮助下用简单的线条简单地做到这一点

$('selector').focus();                     

// $('selector') --> could be $('#tableId td')  

有关更多信息,请查看http://api.jquery.com/category/selectors/

于 2012-12-13T11:14:56.710 回答