Добавление HTML к определенному div, который разделяет имя класса [duplicate]

Для теории см. здесь (следуйте ссылкам!). Практическая демонстрация

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)

74
задан informatik01 10 December 2015 в 13:29
поделиться

7 ответов

Вы также можете использовать .get(0) , но ... вам не нужно делать это с помощью элемента, найденного по идентификатору, который должен всегда быть уникальным. Я надеюсь, что это просто недосмотр в этом примере ... если это так на вашей реальной странице, вам нужно исправить это, чтобы ваши идентификаторы были уникальными и вместо этого использовали класс (или другой атрибут).

.get() (например, [0]) получает элемент DOM, если вы хотите, чтобы объект jQuery использовал .eq(0) или .first() вместо:)

76
ответ дан Nick Craver 18 August 2018 в 02:45
поделиться
  • 1
    За исключением того, что $("#id") /* jQuery object */ != $("#id").get(0) /* DOM Object */ – BrunoLM 23 June 2010 в 18:07
  • 2
    @BrunoLM - Если вы хотите элемент DOM, document.getElementById('id'), не создавайте объект jQuery, чтобы просто выбросить его ... это очень расточительно, от механизма выбора до обертки объекта, это просто избыток без уважительной причины: ) – Nick Craver♦ 23 June 2010 в 18:11
  • 3
    Ник, я согласен, может быть, я был довольно глупым, просто используя jquery для всего. – Rubans 23 June 2010 в 18:39
  • 4
    @NickCraver - Спасибо за это. Я только что заменил связку document.getElementById('id') на $('#id')[0], но не понравился [0]. Ваш комментарий об расточительности заставлял меня думать, чтобы определить $0 = function(id){return document.getElementById(id);}, и теперь мне нравится $0('id') лучше. Такое же количество символов, как $('#id'), я просто хочу, чтобы это было $#('id') – Bruno Bronosky 24 April 2015 в 17:58
  • 5
    Желание было вариантом этих методов, который возвращал значение ложности из пустого набора результатов. – Stephen M. Harris 9 June 2016 в 18:56

http://api.jquery.com/eq/

$("#grid_GridHeader").eq(0)
2
ответ дан Adam 18 August 2018 в 02:45
поделиться

Вы можете попробовать следующее: yourArray.shift()

-2
ответ дан ajream 18 August 2018 в 02:45
поделиться

Вы можете использовать первый метод:

$('li').first()

http://api.jquery.com/first/

btw Я согласен с Nick Craver - используйте document.getElementById () ...

11
ответ дан Bennidhamma 18 August 2018 в 02:45
поделиться
  • 1
    Это возвращает пустой массив, если элементы не найдены. Будьте осторожны с использованием логических операторов, поскольку [] будет иметь значение 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 ] );
4
ответ дан Ken Redler 18 August 2018 в 02:45
поделиться
  • 1
    Спасибо за то, что все остальное работает отдельно от get (), который, кажется, не получает первый элемент. – Rubans 23 June 2010 в 18:36
  • 2
    На самом деле я могу видеть ответ Ника Крейва, почему это не сработает – Rubans 23 June 2010 в 18:38

Вы можете использовать первый селектор.

var header = $('.header:first')
2
ответ дан Matt 18 August 2018 в 02:45
поделиться

$("#grid_GridHeader:first") также работает.

18
ответ дан Mervyn 18 August 2018 в 02:45
поделиться
  • 1
    Я думаю, что это лучший способ справиться с вашей проблемой здесь. Он хорошо читается, в отличие от .eq (0) – Dave Gregory 23 June 2010 в 18:12
Другие вопросы по тегам:

Похожие вопросы: