Explorar o código

9.2 and 9.3 change

Olga1108 %!s(int64=4) %!d(string=hai) anos
pai
achega
f5d258df8f
Modificáronse 2 ficheiros con 87 adicións e 80 borrados
  1. 7 2
      js9/index.html
  2. 80 78
      js9/index.js

+ 7 - 2
js9/index.html

@@ -3,10 +3,15 @@
     <head>
         <meta charset='UTF-8' />
         <meta name='viewport' content='width=device-width, initial-scale=1.0' />
-        <title>Home Work 8.3 JS</title>
+        <title>Home Work 9 JS</title>
     </head>
     <body>
-        <h1>Home Work 8.3</h1>
+        <h1>Home Work 9</h1>
+        <ul>
+            <li class="second-level-menu" style="background-color: aqua;">cat</li>
+            <li class="second-level-menu" style="background-color: aqua;">dog</li>
+            <li class="second-level-menu" style="background-color: aqua;">rabbit</li>
+        </ul>
         <script src='index.js'></script>    
     </body>
 </html>

+ 80 - 78
js9/index.js

@@ -1,4 +1,4 @@
-// Required Task 1
+                                  // Required Task 1
 // Завершите код функции typeMessage так, чтобы на страницу выводился один символ в секунду
 function typeMessage ( message, velocity ) {
     var container = document.getElementById ( "demo" ) ?
@@ -22,50 +22,8 @@ function typeMessage ( message, velocity ) {
     })()
 }
 typeMessage ( `Welcome to the hell`, 1 )
-// // Additionally Task 2
-// // Напилите код методов setUserPresent, showPresent и showAbsent
-// // var users = (
-// //     function ( list ) {
-// //         var users = []
-// //         for ( var user of list )
-// //             users.push ({
-// //                 name: user,
-// //                 present: false
-// //             })
-
-// //         return {
-// //             setUserPresent ( userName, present ) {
-// //                 ...
-// //             },
-// //             showPresent () {
-// //                 ...
-// //             },
-// //             showAbsent () {
-// //                 ...
-// //             }
-// //         }
-// //     }
-// // )( [ "Иван", "Дмитрий", "Степан", "Михаил" ] )
-
-// // users.showAbsent()
-// // После запуска кода результат в консоли должен быть таким:
-
-// // Иван
-// // Дмитрий
-// // Степан
-// // Михаил
-// // а после выполнения кода:
-
-// // users.setUserPresent( "Иван", "+" )
-// // users.setUserPresent( "Михаил", "присутствовал" )
-// // users.setUserPresent( "Степан", true )
-
-// // users.showPresent()
-// // результат в консоли должен быть таким:
-
-// // Иван
-// // Степан
-// // Михаил
+                                 // Additionally Task 2
+// Напилите код методов setUserPresent, showPresent и showAbsent
 // var users = (
 //     function ( list ) {
 //         var users = []
@@ -77,54 +35,98 @@ typeMessage ( `Welcome to the hell`, 1 )
 
 //         return {
 //             setUserPresent ( userName, present ) {
-//                 for (var user of users) {
-//                     userName === user.name && (present === '+' || "присутствовал"  || present ===  true) ? user.present = true : null;
-//                 }
+//                 ...
 //             },
 //             showPresent () {
-//                 for (var user of users) {
-//                     user.present === true ?console.log(user.name) : null;
-//                   }
+//                 ...
 //             },
 //             showAbsent () {
-//                 user.present === false ? console.log(user.name) : null;
+//                 ...
 //             }
 //         }
 //     }
 // )( [ "Иван", "Дмитрий", "Степан", "Михаил" ] )
 
 // users.showAbsent()
-// users.showAbsent()
+// После запуска кода результат в консоли должен быть таким:
+
+// Иван
+// Дмитрий
+// Степан
+// Михаил
+// а после выполнения кода:
+
 // users.setUserPresent( "Иван", "+" )
 // users.setUserPresent( "Михаил", "присутствовал" )
 // users.setUserPresent( "Степан", true )
+
 // users.showPresent()
+// результат в консоли должен быть таким:
 
-// // Additionally Task 3
-// // Допилите код функции changeClass, которая парсит все стили страницы в поисках заданного класса, а затем меняет атрибуты стиля этого класса
+// Иван
+// Степан
+// Михаил
+ var users = (
+    function ( list ) {
+        var users = []
+        for ( var user of list )
+            users.push ({
+                name: user,
+                present: false
+            })
+
+        return {
+            setUserPresent ( userName, present ) {
+                for (var user of users) {
+                    userName === user.name && (present === '+' || "присутствовал"  || present ===  true) ? user.present = true : null;
+                }
+            },
+            showPresent () {
+                for (var user of users) {
+                    user.present === true ?console.log(user.name) : null;
+                  }
+            },
+            showAbsent () {
+              for (var user of users) {
+                user.present === false ? console.log(user.name) : null;
+              }
+            }
+        }
+    }
+)( [ "Иван", "Дмитрий", "Степан", "Михаил" ] )
 
-// // let changeClass = ( classname, styleString ) => ( 
-// //    ...
-// // ).length > 0 ? console.log ( "found" ) : 
-// //     document.head.appendChild (
-// //         document.createElement ( "style" )
-// //     ).textContent = `.${classname} {${styleString}}`
-// // После вызова функции:
+users.showAbsent()
 
-// // changeClass ( "second-level-menu", "background-color: red!important;" )
-// // в консоли страницы, где есть элементы с классом second-level-menu, у всех элементов этого класса цвет фона должен измениться на красный
-// let changeClass = ( classname, styleString ) => ( Array.from ( document.styleSheets )
-// .filter ( sheet => !sheet.href )
-//     .map (
-//         sheet => Array.from ( sheet.cssRules )
-//                 .filter ( rule => rule.selectorText === `.{classname}` )
-//     )
-//        .filter ( item => item.length > 0 )
-//            .map ( item => item[0].cssText.split ("}")
-//                        .join ( `${styleString}}` )
-//            ) 
+users.setUserPresent( "Иван", "+" )
+users.setUserPresent( "Михаил", "присутствовал" )
+users.setUserPresent( "Степан", true )
+users.showPresent()
+
+                                         // Additionally Task 3
+// Допилите код функции changeClass, которая парсит все стили страницы в поисках заданного класса, а затем меняет атрибуты стиля этого класса
+
+// let changeClass = ( classname, styleString ) => ( 
+//    ...
 // ).length > 0 ? console.log ( "found" ) : 
-//      document.head.appendChild (
-//          document.createElement ( "style" )
-//      ).textContent = `.${classname} {${styleString}}`
-//      changeClass ( "second-level-menu", "background-color: red!important;" )
+//     document.head.appendChild (
+//         document.createElement ( "style" )
+//     ).textContent = `.${classname} {${styleString}}`
+// После вызова функции:
+
+// changeClass ( "second-level-menu", "background-color: red!important;" )
+// в консоли страницы, где есть элементы с классом second-level-menu, у всех элементов этого класса цвет фона должен измениться на красный
+let changeClass = ( classname, styleString ) => ( Array.from ( document.styleSheets )
+.filter ( sheet => !sheet.href )
+    .map (
+        sheet => Array.from ( sheet.cssRules )
+                .filter ( rule => rule.selectorText === `.{classname}` )
+    )
+       .filter ( item => item.length > 0 )
+           .map ( item => item[0].cssText.split ("}")
+                       .join ( `${styleString}}` )
+           ) 
+).length > 0 ? console.log ( "found" ) : 
+     document.head.appendChild (
+         document.createElement ( "style" )
+     ).textContent = `.${classname} {${styleString}}`
+     changeClass ( "second-level-menu", "background-color: red!important;" )