А можно без циклических операций, просто определить наличие data- атрибута и если он не существует подставить пустое значащие?
|
Цитата:
|
Здесь получается обрабатывается массив, а можно просто определитель наличии содержимого в переменой, и если перемена пустая или не существует записать пустое значение. В php это выгладить примерно так
if($var) { echo $var = "Значение"; } else { echo $var = ""; } если $var существует, то выводим ее значение |
dima-kruglyak,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { function rev(sel, text) { return $(sel).map(function(i) { return text ? $(this).text(text[i] || "") : $(this).text() }).get() }; var myAnchorText = rev(".myAnchor"); $("ul").on("click mouseenter mouseleave", ".showEdt", function(event) { var text = $(this).data("evalz"); if(!text || !text.length) return; if (event.type == "mouseenter") rev(".myAnchor",text); else if (event.type == "click") myAnchorText = text; else rev(".myAnchor",myAnchorText); }) }); </script> </head> <body> <ul> <li class="showEdt" >No</li> <li class="showEdt" data-evalz="[]">No</li> <li class="showEdt" data-evalz="[111,1]">Milk</li> <li class="showEdt" data-evalz="[222]">Bread</li> <li class="showEdt" data-evalz='[null,"test"]'>test</li> </ul> <div class="myAnchor">333</div> <div class="myAnchor">222</div> </body> </html> |
А можете подсказать, как прикрутить свойство target к классу block, чтобы идентифицировать и запустить нужный элемент
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { var myAnchorText = $(".myAnchor").text(); $("ul").on("click mouseenter mouseleave", ".showEdt", function(event) { var text = $(this).data("evalz"); if (event.type == "mouseenter") $(".myAnchor").html(text); else if (event.type == "click") myAnchorText = text; else $(".myAnchor").html(myAnchorText) }) }); </script> </head> <body> <div class="block"> <ul> <li class="showEdt" data-evalz="111">Milk</li> <li class="showEdt" data-evalz="222">Bread</li> </ul> <div class="myAnchor">333</div> </div> <div class="block"> <ul> <li class="showEdt" data-evalz="333">Milk</li> <li class="showEdt" data-evalz="444">Bread</li> </ul> <div class="myAnchor">555</div> </div> <div class="block"> <ul> <li class="showEdt" data-evalz="666">Milk</li> <li class="showEdt" data-evalz="888">Bread</li> </ul> <div class="myAnchor">999</div> </div> </body> </html> |
dima-kruglyak,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $(".block").each(function(indx, el) { var myAnchor = $(".myAnchor", el), myAnchorText = myAnchor.text(); $("ul", el).on("click mouseenter mouseleave", ".showEdt", function(event) { var text = $(this).data("evalz"); if (event.type == "mouseenter") myAnchor.html(text); else if (event.type == "click") myAnchorText = text; else myAnchor.html(myAnchorText) }) }) }); </script> </head> <body> <div class="block"> <ul> <li class="showEdt" data-evalz="111">Milk</li> <li class="showEdt" data-evalz="222">Bread</li> </ul> <div class="myAnchor">333</div> </div> <div class="block"> <ul> <li class="showEdt" data-evalz="333">Milk</li> <li class="showEdt" data-evalz="444">Bread</li> </ul> <div class="myAnchor">555</div> </div> <div class="block"> <ul> <li class="showEdt" data-evalz="666">Milk</li> <li class="showEdt" data-evalz="888">Bread</li> </ul> <div class="myAnchor">999</div> </div> </body> </html> |
Часовой пояс GMT +3, время: 07:00. |