HTML-сущность для ввода значения?

0

Я пытаюсь использовать некоторые объекты для моего проекта электронного обучения. Я использовал динамическое изменение поля ввода из массива

  var equationValue = new Array("",'−'+1,0,2,3);

и вот мой код

<html>
  <head>

  <script type="text/javascript">
      var equationValue = new Array("",'&#8722;'+1,0,2,3);
      function func(){
      document.getElementById('t_1_1').value = equationValue[1];
      }
 </script>
 </head>

 <body onload='func();'>  
   <input type='text' id='t_1_1' />  
 </body>

</html>

Но входное значение, похоже, не поддерживает HTML-объекты.

Помогите мне использовать объект HTML для ввода значения. Вот мой рабочий пример

  • 0
    Я искал некоторые вещи. Мне это не помогло .. Заранее спасибо :-)
  • 0
    Посмотрите, поможет ли это stackoverflow.com/questions/5796718/html-entity-decode
Показать ещё 5 комментариев
Теги:

3 ответа

0
Лучший ответ

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

var equationValue = new Array("",'−'+1,0,2,3);

Итак... это будет выглядеть примерно так

    <html>
  <head>

  <script type="text/javascript">
  var equationValue = ["",'&#8722;'+1,0,2,3];;

function func(){
    var mdiv = document.createElement("div");
    mdiv.innerHTML = equationValue[1];
    document.getElementById('t_1_1').value = (mdiv.textContent || mdiv.innerText);
}

 </script>
 </head>

 <body onload='func();'>  
   <input type='text' id='t_1_1' />  
 </body>

</html>
  • 0
    спасибо @ Джозеф ... Большое спасибо. :-)
  • 0
    Сценарий стриптиза и часть HTML-тегов совершенно не нужны (и подвержены ошибкам, если это не так). Кроме того, textContent не поддерживается IE 8 и старше. Кроме того, считается, что гораздо лучше использовать литерал массива, а не конструктор Array, поскольку поведение последнего зависит от числа предоставленных аргументов.
Показать ещё 2 комментария
1

вы можете попробовать следующее:

var equationValue = new Array("",'&#8722;'+1,0,2,3);
    function func(){
    var mdiv = document.createElement("div");
    mdiv.innerHTML = equationValue[1];
    document.getElementById('t_1_1').value = (mdiv.textContent || mdiv.innerText);
}
  • 0
    innerText поддерживается не всеми используемыми браузерами, это метод IE, который был скопирован некоторыми другими браузерами. Вы можете использовать … = (mdiv.textContent || mdiv.innerText); или эквивалент для кросс-браузерной поддержки.
  • 0
    @RobG: спасибо за указание на это, я обновил свой ответ.
0

Вместо '&#8722;' , используйте '\u2212'. В JavaScript, &#8722; как таковой всего семь символов данных (хотя есть способы заставить интерпретаторы JavaScript обрабатывать его как ссылку на символ HTML). Общее обозначение escape-кода JavaScript для символа в \uxxxx строке - это \uxxxx где xxxx - это четыре шестнадцатеричных цифры, которые указывают номер кода Unicode. Число 8722 в шестнадцатеричном состоянии равно 2212.

Альтернативно, используйте '−', содержащий символ U + 2212 MINUS SIGN как таковой, при условии, что файл, содержащий ваш код JavaScript, кодируется и объявляется как UTF-8. Способ ввода MINUS SIGN зависит от вашей программы редактирования и базовой системы.

Есть другие проблемы с кодом, обсуждаемые в других ответах и комментариях, но это должно ответить на заданный вопрос.

  • 0
    Почему число 8722 становится 2122 ?
  • 0
    Число 8722 (в десятичной системе) становится 2122, если оно представлено в шестнадцатеричной системе (основание 16). HTML-нотация &#8722; имеет число в десятичной системе; нотация JavaScript \u2122 должна иметь число в шестнадцатеричной системе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню