2013-08-04 3 views
1

Привет, я пытаюсь создать подстроку с javascript. Вот мой код:Стиль подстроки в javascript

function runtest(){ 
    document.getElementById("test1").innerHTML.substring(0,2).style.fontStyle="italic"; 
} 

Функция подстроки работает, но когда я добавляю стиль консоль ошибок дает мне ошибку «не определено.» Как я могу подстроить эту подстроку с помощью javascript?

+3

Оберните его в «span», добавьте класс и стиль, который. – elclanrs

+0

Только элементы имеют свойство стиля, а строка - нет. – adeneo

+0

теперь, когда я добавил стиль в span (я его использовал с помощью javascript), он не будет печатать подстроку. – user1058860

ответ

5

два вариант:

  1. innerHTML решения. Предупреждение: Это приведет к удалению любых обработчиков событий для любых элементов внутри элемента, в котором вы его делаете. Я упоминаю его здесь в основном, так что я могу указать, что из:

    var elm = document.getElementById("test1"); 
    var html = elm.innerHTML; 
    elm.innerHTML = '<span style="font-style: italic">' + html.substring(0, 2) + '</span>' + html.substring(2); 
    
  2. Использование splitText. Здесь я предполагаю, что текст, который вы хотите обернуть в промежутке, - это , первый текстовый узел в элементе. Это не будет испортите обработчики событий элементов:

    var elm = document.getElementById("test1"); 
    var node = elm.firstChild; 
    var span = document.createElement('span'); 
    node.splitText(2); 
    span.style.fontStyle = "italic"; 
    elm.insertBefore(span, node); 
    span.appendChild(node); 
    

    splitText создает два смежных текстовых узлов, где используются, чтобы быть один, с точки разделения будучи на смещение указывается. Затем мы берем первый и обертываем его в span.

    Live Example | Live Source

Смежные вопросы