2016-02-08 1 views
0

Как удалить следующий текст «поиск:» с помощью JqLite или оригинального javascript?Как я могу удалить элементы HTML с помощью JqLite или javascript

<label> 
search:<input type="text"> 
<label> 

обновление


я не объяснить этот вопрос очень четко. Все элементы HTML создаются с помощью угловой директивы. Я могу манипулировать только DOM с JQLITE или JS. А также атрибуты ввода может меняться, так что я не могу заменить все дочерние узлы этикетки с новым входом

+0

Сделает Jquery? –

+3

Получите ссылку на элемент * label *. Удалите все дочерние текстовые узлы. Что вы пробовали? Это не служба написания кода: вы пытаетесь что-то предпринять, если у вас есть проблемы, спросите о них, и ответы могут появиться. – RobG

+0

@ SatejS - возможно, но и большинство [* этих *] (https://en.wikipedia.org/wiki/List_of_JavaScript_libraries). Возможно, OP хочет jqlite (отсюда и тег). – RobG

ответ

0
label.innerHtml='<input type="text">' 

где меткой является оберткой запроса вокруг этого маркирующих

+0

Но это связано с разрушением исходного ввода и жесткого кодирования его замены. Что делать, если вход уже имел значение или обработчики событий? – nnnnnn

+0

Спасибо за ваш ответ! но атрибуты входного элемента являются динамическими, есть ли другие способы сделать это? – vincentf

0

Вот что вам нужно сделать .Учитывая, что ваш HTML выглядит так:

<label> 
search:<input type="text"> 
<label> 

Вы должны сначала ухватить в label.You сделать это с

$("label") 

Учитывая, что вы хотите манипулировать текстом внутри, вы получаете $ («label»). InnerHTML.Let помещает это в переменную.

x=$("label").innerHTML; 

Затем мы используем функцию замены, чтобы заменить значение «search:» пробелом.

y=x.replace("search:",""); 

Мы, наконец, отодвигать это значение у к внутренней HTML с помощью

$("label").innerHTML=y 

Вы можете сократить это в гораздо меньшем количестве шагов, но я отделил их для простоты понимания.

+0

Как вы выбираете текстовый узел? как '$ (lable) .content(). filter()'? – vincentf

+0

@VincentFu, вы можете выбрать диапазон и сделать 'str.parentElement'. Это для узла метки. Для входного элемента 'str.nextElementSibling' –

+0

извините немного путают ... в начале нет диапазона, в этом случае нам нужно сначала выбрать текстовый узел« поиск », а затем использовать wrap() для создания диапазона ? – vincentf

1

Пожалуйста, попробуйте это

<html> 

<body onload="remove()"> 
    <label> 
     search: 
     <input type="text" id="search"> 
    </label> 
</body> 
<script type="text/javascript"> 
function remove() { 
    document.getElementById('search').remove(); 
} 
</script> 

</html> 
+1

. Вы действительно прочитали вопрос? – nnnnnn