У меня есть этот элемент ввода, у которого есть value="Go", у элемента id есть #btnSearchBox, я пытаюсь заменить "Go" на отличный шрифт. При использовании инструментов разработчика, если я вручную заменяю значение «Go» на &#xf002, код для поиска, и вручную добавляю fa fa-search к классу, я получаю желаемый результат. Но когда я пытаюсь реализовать это с помощью JavaScript, он заменяет значение и добавляет класс, но вместо отображения значка я получаю фактическую строку &#xf002.

Это JavaScript, который я использую для добавления класса и замены значения.

document.getElementById('btnSearchBox').value = '&#xf002';
var search = document.getElementById("btnSearchBox");
search.className += " fa fa-search";

Я думаю, это как-то связано с &, но я не уверен, что с этим можно сделать. Мы ценим любые предложения!

Вот копия элемента из инспектора (как и без JavaScript).

<input id="btnSearchBox" name="btnSearchBox" type="submit" class="SearchBox1 ThemeButton GoThemeButton SearchGoThemeButton btn btn-default" value="Go" data-key="ThemeButton_Go_Search_string" onclick="return window.btnQuickAddToCart_onclick ? btnQuickAddToCart_onclick() : false;" \="">

Я не могу получить доступ к коду, иначе id просто добавит его вручную. Это глупый код слияния американо-коммерции для окна поиска.

1
robothead 24 Окт 2019 в 21:21
Пожалуйста, покажите нам html-код
 – 
Mischa
24 Окт 2019 в 21:23
Элемент представляет собой поле ввода текста?
 – 
j08691
24 Окт 2019 в 21:24
Является ли ввод button?
 – 
Matt Croak
24 Окт 2019 в 21:24
Вам не нужен код &#xf002 в качестве значения, просто установка класса на fa fa-search должна работать.
 – 
clav
24 Окт 2019 в 21:26
Надеюсь, вы запустите этот скрипт после того, как загрузится шрифт.
 – 
Aykhan
24 Окт 2019 в 21:54

1 ответ

Лучший ответ

Символ Юникода в javascript имеет формат \uXXXX, поэтому замените '&#xf002' на '\uf002'

document.getElementById('btnSearchBox').value = '\uf002';
var search = document.getElementById("btnSearchBox");
search.className += " fa";
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<input id="btnSearchBox" name="btnSearchBox" type="submit" class="SearchBox1 ThemeButton GoThemeButton SearchGoThemeButton btn btn-default" value="Go" data-key="ThemeButton_Go_Search_string" onclick="return window.btnQuickAddToCart_onclick ? btnQuickAddToCart_onclick() : false;" \="">
2
marzelin 24 Окт 2019 в 22:05
Я изменил свой фрагмент кода, чтобы он точно отражал ваш код, и он работает так, как ожидалось. Проблема должна быть в другом.
 – 
marzelin
24 Окт 2019 в 22:06