Для теории см. здесь (следуйте ссылкам!). Практическая демонстрация
recordset:
Option Explicit
Const adInteger = 3 ' 00000003
Const adVarChar = 200 ' 000000C8
Dim sInp : sInp = "Z1,Z3,Z2,Z20,Z10"
Dim aInp : aInp = Split(sInp, ",")
WScript.Echo "A:", Join(aInp)
Dim oRS : Set oRS = CreateObject("ADODB.Recordset")
oRS.Fields.Append "Word", adVarChar, 50
oRS.Fields.Append "Length", adInteger
oRS.Open
Dim sWord
For Each sWord In aInp
oRS.AddNew
oRS.Fields("Word").value = Left(sWord, 1)
oRS.Fields("Length").value = CInt(Mid(sWord, 2))
oRS.UpDate
Next
oRS.Sort = "Word, Length"
Dim aTable : aTable = oRS.GetRows()
ReDim aOut(UBound(aTable, 2))
Dim i
For i = 0 To UBound(aOut)
aOut(i) = aTable(0, i) & aTable(1, i)
Next
WScript.Echo "B:", Join(aOut)
ArrayList
Option Explicit
Dim sInp : sInp = "Z1,Z3,Z2,Z20,Z10,E1,D3,C2,B20,A10"
Dim aInp : aInp = Split(sInp, ",")
WScript.Echo "A:", Join(aInp)
Dim oNAL : Set oNAL = CreateObject( "System.Collections.ArrayList" )
Dim oSB : Set oSB = CreateObject( "System.Text.StringBuilder" )
Dim sWord
For Each sWord In aInp
oSB.AppendFormat_2 "{0}{1,4}", Left(sWord, 1), CInt(Mid(sWord, 2))
sWord = oSB.ToString()
oSB.Length = 0
oNAL.Add sWord
Next
oNAL.Sort
ReDim aOut(oNAL.Count - 1)
Dim i
For i = 0 To UBound(aOut)
aOut(i) = Left(oNAL(i), 1) & CInt(Mid(oNAL(i), 2))
Next
WScript.Echo "B:", Join(aOut)
Вы также можете использовать .get(0)
, но ... вам не нужно делать это с помощью элемента, найденного по идентификатору, который должен всегда быть уникальным. Я надеюсь, что это просто недосмотр в этом примере ... если это так на вашей реальной странице, вам нужно исправить это, чтобы ваши идентификаторы были уникальными и вместо этого использовали класс (или другой атрибут).
.get()
(например, [0]
) получает элемент DOM, если вы хотите, чтобы объект jQuery использовал .eq(0)
или .first()
вместо:)
Вы можете попробовать следующее: yourArray.shift()
Вы можете использовать первый метод:
$('li').first()
btw Я согласен с Nick Craver - используйте document.getElementById () ...
[]
будет иметь значение true
.
– Ash
25 August 2015 в 15:48
С предположением, что существует только один элемент:
$("#grid_GridHeader")[0]
$("#grid_GridHeader").get(0)
$("#grid_GridHeader").get()
... все эквивалентны, возвращая единственный базовый элемент.
Из исходного кода jQuery вы можете см., что get(0)
, под обложками, по существу делает то же, что и подход [0]
:
// Return just the object
( num < 0 ? this.slice(num)[ 0 ] : this[ num ] );
Вы можете использовать первый селектор.
var header = $('.header:first')
$("#id") /* jQuery object */ != $("#id").get(0) /* DOM Object */
– BrunoLM 23 June 2010 в 18:07document.getElementById('id')
, не создавайте объект jQuery, чтобы просто выбросить его ... это очень расточительно, от механизма выбора до обертки объекта, это просто избыток без уважительной причины: ) – Nick Craver♦ 23 June 2010 в 18:11document.getElementById('id')
на$('#id')[0]
, но не понравился[0]
. Ваш комментарий об расточительности заставлял меня думать, чтобы определить$0 = function(id){return document.getElementById(id);}
, и теперь мне нравится$0('id')
лучше. Такое же количество символов, как$('#id')
, я просто хочу, чтобы это было$#('id')
– Bruno Bronosky 24 April 2015 в 17:58