JQuery имеет эквивалент Element.identify Прототипа?

Добавьте параметр -f (или --showname) , чтобы всегда видел имя файла в git blame.

 > git blame --show-name -e ./lib/Transforms/Hello/Hello.cpp | head -3
180e568a7058 lib/Transforms/Hello/Hello.cpp (         2002-08-08 20:10:38 +0000  1) //===- Hello.cpp - Example code from "Writing an LLVM Pass" ---------------===//
fd93908ae8b9 lib/Transforms/Hello/Hello.cpp (   2005-04-21 23:48:37 +0000  2) //
b576c94c15af lib/Transforms/Hello/Hello.cpp (        2003-10-20 19:43:21 +0000  3) //                     The LLVM Compiler Infrastructure

Как уже упоминалось для этой опции:

По умолчанию имя файла отображается, если есть какая-либо строка из файла с другим именем из-за обнаружения переименования.

blockquote>

Это должно было иметь место для Instruction.h, а не для Hello.cpp.

9
задан Rob W 28 December 2011 в 20:49
поделиться

5 ответов

jQuery.fn.identify = function(prefix) {
    var i = 0;
    return this.each(function() {
        if(this.id) return;
        do { 
            i++;
            var id = prefix + '_' + i;
        } while($('#' + id).length > 0);            
        $(this).attr('id', id);            
    });
};

$('span').identify('test');

Протестированный это на:

<span id='test_2'></span>
<span>test1</span>
<span>test2</span>
<span>test3</span>

Превращенный это к:

<span id="test_2"></span>
<span id="test_1">test1</span>
<span id="test_3">test2</span>
<span id="test_4">test3</span>
22
ответ дан 4 December 2019 в 08:02
поделиться

Не то, чтобы я знаю о, но Вы могли сделать это сами путем добавления id атрибут и предоставление GUID.

Добавить атрибут:

$(foo).attr( "id", createGuid() );

Для createGuid() реализация, посмотрите этот вопрос.

Обратите внимание, что Вы могли легко превратить это в плагин jQuery так, чтобы эта функция (Вы могли даже назвать ее identify()) доступно на любом $-выражение.

3
ответ дан 4 December 2019 в 08:02
поделиться

На основе решения Паоло:

jQuery.fn.identify = function(prefix) {
    var i = 0;
    return this.each(function() {
        if($(this).attr('id')) return;
        do { 
            i++;
            var id = prefix + '_' + i;
        } while($('#' + id).length > 0);            
        $(this).attr('id', id);            
    });
};

$('span').identify('test');

Небольшое изменение, которое постарается не уже рассказывать используемые идентификаторы.

2
ответ дан 4 December 2019 в 08:02
поделиться

Возможно, попробуйте

$("#foo span").each(function(){
   $(this).attr("id", "prefix_" + $(this).parent().index($(this)));
});
-1
ответ дан 4 December 2019 в 08:02
поделиться

Я бы немного изменил данную функцию и сделал это:

jQuery.fn.identify = function(prefix) {
    var i = 0;
    return this.each(function() {
        if($(this).attr('id')) return;
        do { 
            i++;
            var id = prefix + '_' + i;
        } while(document.getElementById(id) != null);            
        $(this).attr('id', id);            
    });
};

ID могут содержать специальные символы, которые требуют экранирования для правильной работы с CSS jQuery селектор двигателя - вроде ".". Поэтому вместо того, чтобы найти и избежать их, проще и быстрее заменить его методом документа.

1
ответ дан 4 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

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