You want the 'a' in "abcdef", the innerHTML/innerText of document.getElementById("my") to change it's style.color to "red"?
Perhaps these two methods (searching/replacing) and substring replacing will help:
PHP Code:
<html>
<head>
</head>
<body>
<script language="javascript" type="text/javascript">
function searchChange(ele,substr,color) {
var t = ele.innerText;
var r = "";
for (i = 0; i < t.length; i++) {
var matches = 0;
if (i <= t.length-substr.length) {
for (s = 0; s < substr.length; s++) {
if (t.charAt(i+s) == substr.charAt(s)) {
matches++;
}
}
}
if (matches == substr.length) {
r += "<font style=\"color: "+color+"; \">"+substr+"</font>";
i += substr.length-1;
}
else {
r += t.charAt(i);
}
}
//r = t.replace(substr, "<font style=\"color: "+color+"; \">"+substr+"</font>");
ele.innerHTML = r;
}
function setChange(ele,pos,len,color) {
//t = text; a,b,c = substrings; r = result
var t = ele.innerText;
var a = t.substr(0,pos);
var b = t.substr(pos,len);
var c = t.substr(pos+len, t.length); //t.length is not technically required here
var r = a+"<font style=\"color: "+color+"; \">"+b+"</font>"+c;
ele.innerHTML = r;
}
</script>
<div id="my">abcdef one more a letter</div>
<input type="button" value="Search Change" onclick="searchChange(document.getElementById('my'),'abc','red')">
<input type="button" value="Set Change" onclick="setChange(document.getElementById('my'),3,3,'red')">
</body>
</html>
Bookmarks