Нет на данный момент.
Я сомневаюсь, что будущее поддержки ActiveX будет прекращено в ближайшем будущем (как заявила MS).
Look здесь о теге HTML Object, но ничего не будет принято. Вы должны попробовать.
tr
с помощью .closest()
code
с помощью .attr()
tr
, имеющие одинаковые code
, используя атрибут , равный селектору . .index()
Пример:
$("input[type='text']").change(function() {
var $parent = $(this).closest("tr");
var code = $parent.attr("code");
var $codeRows = $(this).closest("table").find("tr[code='" + code + "']");
var index = $codeRows.index($parent);
console.log(index);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr code="01">
<td><input type="text" name="A" /></td>
</tr>
<tr code="02">
<td><input type="text" name="B" /></td>
</tr>
<tr code="03">
<td><input type="text" name="C" /></td>
</tr>
<tr code="01">
<td><input type="text" name="D" /> </td>
</tr>
<tr code="01">
<td><input type="text" name="E" /></td>
</tr>
</table>
Вы можете использовать следующий код, чтобы определить, находится ли код input
tr
в одном и том же дереве:
function check (val){
var el=$('tr').find("[name="+val+"]").parent().parent();
var code= el.attr("code");
if(el.is( "[code~="+code+"]")){
var elements=$('tr').filter(function(){
return $(this).is( "[code~="+code+"]" );
});
console.log(elements.index(el));
}
}
$("input[type='text']").on("input", function() {
if($(this).val().length > 0){
check(($(this).val()));
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr code="01"> <td><input type="text" name="A"/></td></tr>
<tr code="02"> <td><input type="text" name="B"/></td></tr>
<tr code="03"> <td><input type="text" name="C"/></td></tr>
<tr code="01"> <td><input type="text" name="D"/> </td></tr>
<tr code="01"> <td><input type="text" name="E"/></td></tr>
</table>
[1138 ] Объяснение:
function check (val){
var el=$('tr').find("[name="+val+"]").parent().parent();
var code= el.attr("code");
if(el.is( "[code~="+code+"]")){
var elements=$('tr').filter(function(){
return $(this).is( "[code~="+code+"]" );
});
console.log(elements.index(el));
}
}
используется для определения, было ли введенное значение в том же дереве атрибутов code
. Если это так, отфильтруйте все элементы в этом коде и получите индекс.
$("input[type='text']").on("input", function() {
if($(this).val().length > 0){
check(($(this).val()));
}
});
используется для обнаружения входа на input textbox
. Если есть какой-либо ввод, он запустит функцию выше.
Связанные ресурсы:
.find()
: Получить потомков каждого элемента в текущем наборе совпадающих элементов, отфильтрованных селектором, объектом jQuery или элементом. [1 125] .parent()
: Получить родительский элемент каждого элемента в текущем наборе совпадающих элементов, который может быть отфильтрован по выбору. (Двойной средний родительский родитель ( Дедушка )) .filter()
: Сократить набор соответствующих элементов до тех, которые соответствуют селектору или проходят тест функции . .attr()
: Получить значение атрибута для первого элемента в наборе совпадающих элементов или установить один или несколько атрибутов для каждого сопоставленного элемента. .is()
: проверить текущий сопоставленный набор элементов по объекту селектора, элемента или jQuery и вернуть true
, если хотя бы один из этих элементов соответствует заданному аргументы. .index()
: поиск заданного элемента среди соответствующих элементов.