Выделите искомый текст с помощью Angular js, jQuery и Css
-
12-12-2019 - |
Вопрос
Я использую этот плагин jquery для поиска текста:"http://code.google.com/p/jquery-highlight/downloads/list "..
Но я не могу обернуть этот код в angular js , Я хочу сказать "я не могу написать директиву для вызова этого плагина jquery"...!!!
Обновленный :
Тот же пост в группе Google:
Решение
ОБНОВЛЕНИЕ:Это всего лишь пример.Вы можете вносить изменения в соответствии с вашими потребностями.
Для этого вам не нужно сравнение регулярных выражений.Давайте просто воспользуемся javascript split()
функция
1) Определите стиль выделения.
.srchslctn{
background-color: yellowgreen;
color: red;
}
2) Ваш образец HTML
<body>
<div>
<div id="serach-Paragraph">
Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum
</div>
<input type="button" id="h" value="Highlight"/>
<div id="target"></div>
</div>
</body>
3) JavaScript
$(document).ready(function(){
$("#h").on('click',function(){
highlight();
});
});
function highlight(){
$("#target").empty();
var mainString = $("#serach-Paragraph").html();
var searchString = "ipsum";
var arr = mainString.split(searchString);
var len = arr.length;
var finalString="";
for(var i=0;i<arr.length;i++){
finalString+=arr[i];
if(i<len-1){
finalString+='<span class="srchslctn">'+searchString+'</span>';
}
}
$("#target").html(finalString);
}
Вот и все....
Объяснение -: split()
разобьет целевую строку в соответствии с вашей строкой поиска.Это похоже на то, как мы извлекаем значения, разделенные запятыми.Единственное, что в этом случае ваша строка поиска действует как запятая :)
Затем продолжайте arr[0]
как оно есть.Выделите строку поиска и добавьте ее в arr[0]
.Добавлять arr[1]
к приведенному выше результату и так далее.
Простой....
Искомый текст, как в случае, когда вам нужно выделить только совпадающую часть, сохраняя остальную часть текста такой, какая она есть?
Другие советы
Вы можете использовать engular-ui highlight фильтр.