كيف أقوم بإنشاء في JavaScript ديناميكيًا يحتوي على كيان HTML ( - ... «)؟

StackOverflow https://stackoverflow.com/questions/425234

سؤال

أود إضافة ملفu003Coption> عنصر لu003Cselect> العنصر حيثu003Coption> يحتوي نص العنصر على كيان HTML: -

في HTML ، سيبدو الرمز هكذا:

<select name="test" id="test">
    <option value="">&mdash; Select One &mdash;</option>
</select>

يبدو رمز JavaScript الخاص بي هكذا:

function selectOne() {
  var e = document.getElementById('test');
  e.options[0] = new Option('&mdash; Select One &mdash;', '');
}

ومع ذلك ، كما سترى ما إذا كنت تختبر هذا ، فإن الهروب. كان لدي نفس النتيجة عندما حاولت:

e.options[o].text = '&mdash; Select One &mdash;';

(كان السلوك الملحوظ في Internet Explorer 7 ... لم يختبر مع Firefox و Safari وما إلى ذلك - Internet Explorer 7 هو المتصفح الوحيد الذي أحتاجه في الوقت الحالي.)

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

المحلول

لقد أدركت للتو أنه يمكنني استخدام الهروب من JavaScript Unicode:

e.options[0] = new Option('\u2014 Select One \u2014', '');

نصائح أخرى

لا تحتاج إلى الهروب من الكيان - فهو يعمل مثل هذا:

function selectOne() {
      var e = document.getElementById('test');
      e.options[0] = new Option('— Select One —', '');
}

text لم يتم تكوين الممتلكات ، حيث من المفترض أن تؤخذ حرفيًا. كما ترى innerHTML, ، يتم تحويل الكيانات إلى الأحرف المقابلة.

e.options[o].innerHTML = '&mdash; Select One &mdash;';
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top