Показать сообщение отдельно
  #2 (permalink)  
Старый 14.06.2012, 19:21
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от yashka525 Посмотреть сообщение
Привет!

Есть загаданное слово, например "тонна". Каждая буква - в своём div'е (HiddenLetter) с одним и тем же классом = 'Letter Hidden'. На страничке кнопки в русским алфавитом, и на каждую кнопку/букву (AlphabetLetter) я вешаю EventListener. И если нажатая буква есть в этом слове, то div HiddenLetter меняем свой класс на 'Letter Opened', тем самым показываю угаданную букву. И вот проблема: если я нажимаю букву "н", то как мне сделать так, чтоб он пробежался по всему слову и открыл обе "н"? Не могу додуматься.

NewEvent(AlphabetLetter, 'click', function(){
					
	var HiddenLetter = document.getElementsByClassName('Letter Hidden')
						
	for(var k = 0;k < HiddenLetter.length;k++){
							
		if(this.innerHTML == HiddenLetter[k].innerHTML){
							
			HiddenLetter[k].className = 'Letter Opened'; //только один div затрагивает...
		}
							
	}
					
});


Заранее спасибо.
<script type="text/javascript">
function visible(val) {
	var hid = document.getElementsByClassName('Letter Hidden');
	for (i=0; i<hid.length; i++) {
		if (hid[i].innerHTML == val) {
			hid[i].className = "Letter Opened";
			//или
			//hid[i].setAttribute("class", "Letter Opened");
		}
	}
}
</script>

<input type="button" value="н" onClick="visible(this.value)">

для IE придется написать самопальный метод getElementsByClassName()
// getElementsByClassName for IE
if (typeof document.getElementsByClassName == 'undefined') {
    document.getElementsByClassName = function(classname) {
        var all = document.all,
        elements = [],
        regexpr = new RegExp('\\b'+classname+'\\b','ig');
        for(var x=0; x<all.length; x++) if (all[x].className)
        if (all[x].className.search(regexpr)!=-1) elements[elements.length] = all[x];
        return elements;
    }
}
Ответить с цитированием