Библиотека Linq-For-Javascript содержит функции, которые преобразуют между «jQuery objects
» и «Enumerable objects
»: toEnumerable() и TojQuery(). Рассмотрим разницу между этими двумя линиями:Вложенные массивы LINQ-for-Javascript
$('tr'); // returns array of tr
$('tr').toEnumerable().TojQuery(); // returns array of tr[1]
Преобразование из JQuery в Enumerable и обратно JQuery не дает вам то, что вы начали с. Конечным результатом является массив массивов элементов, каждый из которых имеет длину 1. Мне нужно использовать Enumerable, поэтому это просто удобный пример моей проблемы.
Это означает, что, чтобы получить идентификатор элемента, вам нужно сделать следующее:
$('tr')[0].id; // returns "myID"
$('tr').toEnumerable().TojQuery()[0][0].id; // returns "myID"
Я удивлен этим, потому что несмотря на то, что я якобы вернулся TojQuery()
, то объект, возвращаемый TojQuery()
не работает с типичной JQuery звонки:
$('tr').find('td').length; // returns 170 (in my case)
$('tr').toEnumerable().TojQuery().find('td').length; // returns 0 (BAD)
Я хотел бы, если обе линии вернулись 170, но видимо Linq-For-Javascript не работает.
Итак, мои вопросы:
- Почему это?
- Я делаю это неправильно?
- Если нет, никаких хороших обходных решений? (конвертация
array of 1-element arrays
наarray of elements
?)
Спасибо!