سؤال

أنا أستعمل اسفل الصفحة الذي يتطلب إعطاء معرف 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);
};

ومع ذلك أحتاج إلى استخدام المحرر في أماكن مختلفة من المشروع بمعرفات مختلفة لمناطق النص.لذلك سيكون من الجيد استخدام class بدلاً من سمة id.كيف يمكن تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

لدي ما أتخيل أنه موقف مشابه لك، على الرغم من أنني لا أعتمد بشكل محدد على المعرفات الخاصة بي، لذلك لا أمانع في استبدالها بـ 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();
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top