使用class属性而不是id的Pagedown

时间:2012-02-29 15:23:08

标签: javascript jquery editor markdown pagedown

我使用Pagedown,要求将wmd-input的id提供给textarea。它在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);
};

但是我需要在项目的不同位置使用编辑器,使用不同的textareas。因此,使用class而不是id属性会很好。怎么能实现这个目标?

1 个答案:

答案 0 :(得分:2)

我有我想象的类似情况,虽然我没有特别依赖我的ID,所以我不介意用JS交换它们,我没有应用于ID的样式(我有课程。)

我真正为自己编写的内容可能会有所帮助,简而言之,它使用jQuery通过插入正确的DOM结构并应用正确的ID来替换页面上的所有textareas与wmd编辑器。 (替换任何现有的textarea ID)并考虑迭代。

$('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();
});