Pagedown используя атрибут класса вместо id - PullRequest
1 голос
/ 29 февраля 2012

Я использую Pagedown , который требует присвоения идентификатора wmd-input текстовой области.В Markdown.Editor.js написано следующее:

function PanelCollection(postfix) {
    this.buttonBar = doc.getElementById("wmd-button-bar" + postfix);
    this.preview = doc.getElementById("wmd-preview" + postfix);
    this.input = doc.getElementById("wmd-input" + postfix);
};

Однако мне нужно использовать редактор в разных местах проекта с разными идентификаторами текстовых полей.Поэтому было бы неплохо использовать класс вместо атрибута id.Как этого добиться?

1 Ответ

2 голосов
/ 09 апреля 2012

У меня есть то, что, по-моему, похоже на вас, хотя у меня нет особой зависимости от моих идентификаторов, поэтому я не против поменять их на JS, у меня нет стилевого оформления, примененного к идентификаторам (я есть классы для этого).

То, что я буквально только что написал для собственного использования, вероятно, будет полезно, короче говоря, он использует jQuery для обмена всеми текстовыми областями, найденными на странице, с помощью редактора wmd, вставляя правильную структуру DOM и применяя правильные идентификаторы (замена любого существующего идентификатора текстовой области) с учетом итерации.

$('textarea').each(function(i) {
  var panel = $('<div/>', {'class': 'wmd-panel'});

  panel.append(
    $('<div/>', {'id': 'wmd-button-bar-' + i, 'class': 'wmd-button-bar'}),
    $(this).clone().attr('id', 'wmd-input-' + i)
  );

  $(this).replaceWith(panel);

  panel.after($('<div/>', {'id': 'wmd-preview-' + i, 'class': 'wmd-preview'}));

  var converter = Markdown.getSanitizingConverter();
  var editor = new Markdown.Editor(converter, '-' + i);
  editor.run();
});
...