клик по ссылке и открытие блока
Всем привет. Пожалуйста подскажите как сделать так чтобы при нажатии на ссылку открывалось содержимое того дива на котором нажали - а то всё время открывается первый блок - при условии что таких дивов бывает разное количество.
<div class="bbCodeBlock"><div class="bbCodeName">имя 1</div><div class="codeMessage">содержимое 1</div></div> <br> <div class="bbCodeBlock"><div class="bbCodeName">имя 2</div><div class="codeMessage">содержимое 2</div></div> <br> <div class="bbCodeBlock"><div class="bbCodeName">имя 3</div><div class="codeMessage">содержимое 3</div></div> <script type="text/javascript"> function page() { var view = window.open("","view"); var code = document.querySelector('.codeMessage'); view.document.open(); view.document.write(code.innerText); view.document.close();} $('.bbCodeName').html('<a href="javascript:void(0)" onclick="page()">ОТКРЫТЬ</a>'); </script> Спасибо |
BARABANTEMO,
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <style> div { border: 1px solid black; } div.bbCodeName { cursor: pointer; } </style> <title>Document</title> </head> <body> <div class="bbCodeBlock"> <div class="bbCodeName">имя 1</div><div class="codeMessage">содержимое 1</div></div> <br> <div class="bbCodeBlock"> <div class="bbCodeName">имя 2</div><div class="codeMessage">содержимое 2</div> </div> <br> <div class="bbCodeBlock"> <div class="bbCodeName">имя 3</div><div class="codeMessage">содержимое 3</div> </div> <script> var names = document.getElementsByClassName('bbCodeBlock'); for (var i = 0; i < names.length; i++) { var el = names[i]; el.addEventListener('click', function () { var codeMessage= this.getElementsByClassName('codeMessage')[0]; codeMessage.style.display = (codeMessage.style.display == 'none')?'block':'none'; }) } </script> </body> </html> |
BARABANTEMO,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function() { var s = $(".bbCodeBlock"); s.each(function(indx, el) { var text = $(".codeMessage", el).text(); $(".bbCodeName", el).click(function() { var view = window.open("", "view"); view.document.open(); view.document.write(text); view.document.head.innerHTML = "<title>сайт</title>"; view.document.close() }).text("ОТКРЫТЬ") }) }); </script> </head> <body> <div class="bbCodeBlock"><div class="bbCodeName">имя 1</div><div class="codeMessage">содержимое 1</div></div> <br> <div class="bbCodeBlock"><div class="bbCodeName">имя 2</div><div class="codeMessage">содержимое 2</div></div> <br> <div class="bbCodeBlock"><div class="bbCodeName">имя 3</div><div class="codeMessage">содержимое 3</div></div> </body> </html> |
рони, большое спасибо всё работает а Mess4me наверно не понял мой вопрос но всё равно спасибо
|
BARABANTEMO,
немного изменил смотрите код снова пост 3 |
рони, да посмотрел я конечно не понимаю в чём разница но буду пользоваться последним кодом - и ещё вопрос а как сделать чтобы в новом окне содержимое дива записывалось в body а в head например <title>сайт</title> спасибо и извините за беспокойство
|
BARABANTEMO,
выше снова |
рони, да всё в десятку ещё раз большое спасибо в долгу у ВАС
|
Часовой пояс GMT +3, время: 18:24. |