Действительно ли возможно клонировать объекты элемента HTML в JavaScript / JQuery?

Вы можете создавать миксиноподобные конструкции в C # 4.0, не используя динамические, с методами расширения на интерфейсах и классом ConditionalWeakTable для хранения состояния. Посмотрите здесь за идею.

Вот пример:

public interface MNamed { 
  // required members go here
}
public static class MNamedCode {
  // provided methods go here, as extension methods to MNamed

  // to maintain state:
  private class State { 
    // public fields or properties for the desired state
    public string Name;
  }
  private static readonly ConditionalWeakTable
    _stateTable = new ConditionalWeakTable();

  // to access the state:
  public static string GetName(this MNamed self) {
    return _stateTable.GetOrCreateValue(self).Name;
  }
  public static void SetName(this MNamed self, string value) {
    _stateTable.GetOrCreateValue(self).Name = value;
  }
}

Используйте его так:

class Order : MNamed { // you can list other mixins here...
  ...
}

...

var o = new Order();
o.SetName("My awesome order");

...

var name = o.GetName();

Проблема использования атрибута заключается в том, что вы не можете передавать общие параметры из класса в Mixin. Вы можете сделать это с помощью маркеров интерфейсов.

94
задан luiges90 13 June 2013 в 04:34
поделиться

4 ответа

Используя свой код, вы можете сделать что-то подобное на простом JavaScript, используя метод cloneNode () :

// Create a clone of element with id ddl_1:
let clone = document.querySelector('#ddl_1').cloneNode( true );

// Change the id attribute of the newly created element:
clone.setAttribute( 'id', newId );

// Append the newly created element on element p 
document.querySelector('p').appendChild( clone );

Или используя jQuery clone () метод (не самый эффективный):

$('#ddl_1').clone().attr('id', newId).appendTo('p'); // append to where you want
48
ответ дан 24 November 2019 в 05:55
поделиться

В одной строке:

$('#selector').clone().attr('id','newid').appendTo('#newPlace');
0
ответ дан 24 November 2019 в 05:55
поделиться

С помощью встроенного JavaScript :

newelement = element.cloneNode(bool)

где логическое значение указывает, следует ли клонировать дочерние узлы.

Вот полная документация по MDN .

277
ответ дан 24 November 2019 в 05:55
поделиться

На самом деле это очень просто в jQuery:

$("#ddl_1").clone().attr("id",newId).appendTo("body");

Измените .appendTo () конечно ...

3
ответ дан 24 November 2019 в 05:55
поделиться
Другие вопросы по тегам:

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