Я написал эту функцию, которая принимает слово в качестве входных данных и помещает его в тег <b>
, чтобы оно было выделено жирным шрифтом при отображении в HTML. Но когда оно действительно визуализируется, слово не выделено жирным шрифтом, а только окружено тегом <b>
.
Вот функция:
function delimiter(input, value) {
return input.replace(new RegExp('(\\b)(' + value + ')(\\b)','ig'), '$1<b>$2</b>$3');
}
При предоставлении значения и ввода, например. «сообщение» и «Это тестовое сообщение»:
Результат: This is a test <b>message</b>
Требуемый результат: This is a test message
Даже замена значения на value.bold()
возвращает то же самое.
EDIT Это HTML вместе с JS, над которым я работаю:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Test</title>
<script>
function myFunction(){
var children = document.body.childNodes;
for(var len = children.length, child=0; child<len; child++){
if (children[child].nodeType === 3){ // textnode
var highLight = new Array('abcd', 'edge', 'rss feeds');
var contents = children[child].nodeValue;
var output = contents;
for(var i =0;i<highLight.length;i++){
output = delimiter(output, highLight[i]);
}
children[child].nodeValue= output;
}
}
}
function delimiter(input, value) {
return unescape(input.replace(new RegExp('(\\b)(' + value + ')(\\b)','ig'), '$1<b>$2</b>$3'));
}
</script>
</head>
<body>
<img src="http://some.web.site/image.jpg" title="knorex"/>
These words are highlighted: abcd, edge, rss feeds while these words are not: knewedge, abcdefgh, rss feedssss
<input type ="button" value="Button" onclick = "myFunction()">
</body>
</html>
Я в основном получаю результат функции разделителя и меняю nodeValue
дочернего узла.
Возможно ли, что что-то не так с тем, как я возвращаю то, что мне возвращает функция?
Это то чем я занимаюсь:
children[child].nodeValue = output;
<strong>
вместо тегов<b>
. - person Devin McInnis   schedule 22.01.2013