WIL2
68595 ワード
JQueryとAjax
JQuery
JクエリはオープンソースベースのJavaScriptライブラリです.Jクエリーを使用すると、短いコードでWebページに複数の効果や効果を適用できます.
2番目のクエリーを使用する前に、importを行う必要があります.
jQuery get started
< script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
id,class属性
jQueryからタグをロードする場合、主にid値を利用するようです.id:1つの要素に1つのid>'#id'しかありません. class:複数の要素に適用>>です.「class」にロードされます. jQueryを使用する場合は、属性値を$("#id")または$(".class")にロードします.
上のlettemp html=
display:none; vs. visibility:hidden;
jQuery Quiz
AJAX
サーバ>クライアントJSON
JSON(JavaScript Object Notation)は、データを格納または転送する際によく用いられる軽量レベルのデータ交換フォーマットです.
JSONはKey:Valueで構成されています.
ソウル市のオープンAPIを使って勉強しましょう.
ソウル市OpenAPIhttp://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99
AJAXは非同期JavaScriptとXMLです.簡単に言えば、XMLHttpRequestオブジェクトを使用してサーバと通信します.
次はajaxの基本フレームワークです.
GETはクライアントがデータを要求する方式であり、主にデータの照会に用いられる.
要求時にローデータを空にする(GET)
コンテンツは、サーバからの結果をコンソールウィンドウに出力することです.
上のurlにソウル市スモッグopenAPIをロードし、必要なデータをコンソールウィンドウに出力しようとした.
読み込まれたスモッグ情報をrows配列に入れ、0から終了の順に「MSRSTE NM」キーの値(旧名称)と「IDEX MVL」キーの値(スモッグ度合い)をコンソールウィンドウに出力します.これにより、以下のコンテンツのコンソールウィンドウを表示できます.
練習AJAX-1
ここでも同様にtemp html変数にコードを加え、appendでタグに貼り付けます.このように価格をつける時、
一番上の行では、空の()関数が使用され、ボタンをクリックするたびにリフレッシュでロードできます.
+スモッグが悪い
練習AJAX-2
この例では、ソウル市大菱がOpenAPI情報を使用してボタンをクリックすると、大菱が情報テーブルを更新する.大菱の駐車台数が5台未満の場合は、赤いデザインを着用します.
ソウル市泰陵のOpenAPI
http://spartacodingclub.shop/sparta_api/seoulbike
*ここでは、空の後ろに括弧が付いていないので、ずっとエラーが発生しています.空()も関数ですから、忘れないで!
練習AJAX-3
この例では、API情報を受信すると、ボタンをクリックするたびにRetanというロールが変更されます.
飛毛脚API
http://spartacodingclub.shop/sparta_api/rtan
楽坦のAPIには画像urlとmsgが含まれており、リフレッシュするたびに変更されます.この関数をボタンをクリックすればいいです.
ここでattrはHTML属性を扱うjQuery getter/setterメソッドである.
*$('#id').text(「text」)id値を持つタグ付きテキストをtextに変換することを意味する.
宿題:ファン名簿に天気情報を入れる
ファン名簿に天気情報を入れる
ロードが完了すると、天気APIを使用して天気を表示します.
ソウル天気API
http://spartacodingclub.shop/sparta_api/weather/seoul
確かにひとつずつ作る楽しみがあります!
次の運転手さんはPsunですがそれが少しついた感じ
夜からPythonの勉強を始めたと知っていたのに...
ところで、パイは本当に遅いですね...ううう
JQuery
JクエリはオープンソースベースのJavaScriptライブラリです.Jクエリーを使用すると、短いコードでWebページに複数の効果や効果を適用できます.
2番目のクエリーを使用する前に、importを行う必要があります.
jQuery get started
< script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
id,class属性
jQueryからタグをロードする場合、主にid値を利用するようです.
$('#name').val('성함을 적어주세요')
>S.fn.init [input#name.form-control]
$('#name').val()
>'성함을 적어주세요'
val()関数として値を入力またはロードできます.$('.wrap').hide()
S.fn.init [div.wrap, prevObject: S.fn.init(1)]
$('.wrap').show()
S.fn.init [div.wrap, prevObject: S.fn.init(1)]
hide()とshow()を使用してwrapクラスセクションを非表示または表示できます.let temp_html = `<button>버튼</button>`
$('#mycard').append(temp_html);
append()関数を使用してボタンを追加したり、divボックスを追加したりできます.上のlettemp html=
<button>버튼</button>
の코드부분
は、単一引用符(`)ではなくbacktick(`)で包まなければなりません.backticを使用すると、javascript変数を文字の間に挿入できます.<style>
.wrap{
display: none;
}
</style>
<script>
function open_box(){
$('.wrap').show();
}
function close_box(){
$('.wrap').hide();
}
</script>
<body>
... <button onclick="open_box()">방명록 쓰기</button>
<button type="button" class="btn btn-outline-dark" onclick="close_box()">닫기</button>
...
</body>
上のコードでは、ブラウザを初めて開くときにwrap部分を非表示にすることができ、「ルームリストを書く」ボタンを押すとwrap部分を表示することができ、「閉じる」ボタンを押すとwrap部分を非表示にすることができます.display:none; vs. visibility:hidden;
display:none;
画面にエリアを取らず、いっそなくならないようにします.visibility: hidden;
画面上だけがその内容に隠され、領域は依然として占められている.jQuery Quiz
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>jQuery 연습하고 가기!</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style type="text/css">
div.question-box {
margin: 10px 0 20px 0;
}
</style>
<script>
function q1() {
// 1. input-q1의 입력값을 가져온다. $('# .... ').val() 이렇게!
// 2. 만약 입력값이 빈칸이면 if(입력값=='')
// 3. alert('입력하세요!') 띄우기
// 4. alert(입력값) 띄우기
let inputq1 = $('#input-q1').val();
if(inputq1 == ''){
alert('입력하세요');
} else{
alert(inputq1);
}
}
function q2() {
// 1. input-q2 값을 가져온다.
// 2. 만약 가져온 값에 @가 있으면 (includes 이용하기 - 구글링!)
// 3. [email protected] -> gmail 만 추출해서 ( .split('@') 을 이용하자!)
// 4. alert(도메인 값);으로 띄우기
// 5. 만약 이메일이 아니면 '이메일이 아닙니다.' 라는 얼럿 띄우기
let inputq2 = $('#input-q2').val();
if(inputq2.includes('@')){
alert(inputq2.split('@')[1].split('.')[0]);
}else{
alert('이메일이 아닙니다.');
}
}
function q3() {
// 1. input-q3 값을 가져온다. let txt = ... q1, q2에서 했던 걸 참고!
// 2. 가져온 값을 이용해 names-q3에 붙일 태그를 만든다. (let temp_html = `<li>${txt}</li>`) 요렇게!
// 3. 만들어둔 temp_html을 names-q3에 붙인다.(jQuery의 $('...').append(temp_html)을 이용하면 굿!)
let inputq3 = $('#input-q3').val();
let temp_html = `<li>${inputq3}</li>`
$('#names-q3').append(temp_html);
}
function q3_remove() {
// 1. names-q3의 내부 태그를 모두 비운다.(jQuery의 $('....').empty()를 이용하면 굿!)
$('#names-q3').empty();
}
</script>
</head>
<body>
<h1>jQuery + Javascript의 조합을 연습하자!</h1>
<div class="question-box">
<h2>1. 빈칸 체크 함수 만들기</h2>
<h5>1-1. 버튼을 눌렀을 때 입력한 글자로 얼럿 띄우기</h5>
<h5>[완성본]1-2. 버튼을 눌렀을 때 칸에 아무것도 없으면 "입력하세요!" 얼럿 띄우기</h5>
<input id="input-q1" type="text" /> <button onclick="q1()">클릭</button>
</div><hr />
<div class="question-box">
<h2>2. 이메일 판별 함수 만들기</h2>
<h5>2-1. 버튼을 눌렀을 때 입력받은 이메일로 얼럿 띄우기</h5>
<h5>2-2. 이메일이 아니면(@가 없으면) '이메일이 아닙니다'라는 얼럿 띄우기</h5>
<h5>[완성본]2-3. 이메일 도메인만 얼럿 띄우기</h5>
<input id="input-q2" type="text" /> <button onclick="q2()">클릭</button>
</div><hr />
<div class="question-box">
<h2>3. HTML 붙이기/지우기 연습</h2>
<h5>3-1. 이름을 입력하면 아래 나오게 하기</h5>
<h5>[완성본]3-2. 다지우기 버튼을 만들기</h5>
<input id="input-q3" type="text" placeholder="여기에 이름을 입력" />
<button onclick="q3()">이름 붙이기</button>
<button onclick="q3_remove()">다지우기</button>
<ul id="names-q3">
<li>세종대왕</li>
<li>임꺽정</li>
</ul>
</div>
</body>
</html>
*ID값 앞에 '#' 꼭 붙이기!
*변수에 태그를 만들어 붙일 때는 백틱(backtick)으로!
.includes(' ', startPoint)
startPoint関数は、まず「」の文字が含まれているかどうかを検索します.(文字列は0から).split(' ')
「」の文字数を基準として、前の文字列を分割する関数.AJAX
サーバ>クライアントJSON
JSON(JavaScript Object Notation)は、データを格納または転送する際によく用いられる軽量レベルのデータ交換フォーマットです.
JSONはKey:Valueで構成されています.
ソウル市のオープンAPIを使って勉強しましょう.
ソウル市OpenAPIhttp://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99
AJAXは非同期JavaScriptとXMLです.簡単に言えば、XMLHttpRequestオブジェクトを使用してサーバと通信します.
次はajaxの基本フレームワークです.
$.ajax({
type: "GET",
url: "여기에URL을입력",
data: {},
success: function(response){
console.log(response)
}
})
urlのデータをGETで要求します.GETはクライアントがデータを要求する方式であり、主にデータの照会に用いられる.
要求時にローデータを空にする(GET)
コンテンツは、サーバからの結果をコンソールウィンドウに出力することです.
上のurlにソウル市スモッグopenAPIをロードし、必要なデータをコンソールウィンドウに出力しようとした.
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulair",
data: {},
success: function (response) {
let rows = response['RealtimeCityAir']['row']
for(let i = 0; i < rows.length; i++){
let gu_name = rows[i]['MSRSTE_NM']
let mise_value = rows[i]['IDEX_MVL']
console.log(gu_name, mise_value);
}
}
})
上記の例では、RealtimeCityAirという名前のキー値にはDictionary型valueが含まれ、rowという名前のキー値にはリスト型valueが含まれています.読み込まれたスモッグ情報をrows配列に入れ、0から終了の順に「MSRSTE NM」キーの値(旧名称)と「IDEX MVL」キーの値(スモッグ度合い)をコンソールウィンドウに出力します.これにより、以下のコンテンツのコンソールウィンドウを表示できます.
練習AJAX-1
function q1() {
$('#names-q1').empty();
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulair",
data: {},
success: function (response) {
let rows = response['RealtimeCityAir']['row']
for(let i = 0; i < rows.length; i++){
let gu_name = rows[i]['MSRSTE_NM']
let mise_value = rows[i]['IDEX_MVL']
let temp_html = `<li>${gu_name} : ${mise_value}</li>`
$('#names-q1').append(temp_html)
}
}
})
}
上記の例では、結果値をブラウザウィンドウの例にさらにサスペンションします.ここでも同様にtemp html変数にコードを加え、appendで
${ }
の中でやっと価格をつけることができます.一番上の行では、空の()関数が使用され、ボタンをクリックするたびにリフレッシュでロードできます.
+スモッグが悪い
<style>
.bad{
color: red;
}
</style>
if(mise_value > 120){
temp_html = `<li class="bad">${gu_name} : ${mise_value}</li>`
} else {
temp_html = `<li>${gu_name} : ${mise_value}</li>`
}
条件文を付けてスモッグ値が120を超えると赤色で出力されます.練習AJAX-2
この例では、ソウル市大菱がOpenAPI情報を使用してボタンをクリックすると、大菱が情報テーブルを更新する.大菱の駐車台数が5台未満の場合は、赤いデザインを着用します.
ソウル市泰陵のOpenAPI
http://spartacodingclub.shop/sparta_api/seoulbike
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>JQuery 연습하고 가기!</title>
<!-- JQuery를 import 합니다 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style type="text/css">
div.question-box {
margin: 10px 0 20px 0;
}
table {
border: 1px solid;
border-collapse: collapse;
}
td, th {
padding: 10px;
border: 1px solid;
}
<!--따릉이 대수가 5대 이하이면 빨간색으로 글씨를 바꿔주는 용도-->
.short{
color: red;
}
</style>
<script>
function q1() {
$('#names-q1').empty();
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulbike",
data: {},
success: function (response) {
let rows = response['getStationList']['row']
for (let i = 0; i < rows.length; i++) {
let stationName = rows[i]['stationName']
let rackTotCnt = rows[i]['rackTotCnt']
let parkingBikeTotCnt = rows[i]['parkingBikeTotCnt']
let temp_html = ``
if (parkingBikeTotCnt < 5) {
temp_html = `<tr class="short">
<td>${stationName}</td>
<td>${rackTotCnt}</td>
<td>${parkingBikeTotCnt}</td>
</tr>`
} else {
temp_html = `<tr>
<td>${stationName}</td>
<td>${rackTotCnt}</td>
<td>${parkingBikeTotCnt}</td>
</tr>`
}
$('#names-q1').append(temp_html)
}
}
})
}
</script>
</head>
<body>
<h1>jQuery + Ajax의 조합을 연습하자!</h1>
<hr />
<div class="question-box">
<h2>2. 서울시 OpenAPI(실시간 따릉기 현황)를 이용하기</h2>
<p>모든 위치의 따릉이 현황을 보여주세요</p>
<p>업데이트 버튼을 누를 때마다 지웠다 새로 씌여져야 합니다.</p>
<button onclick="q1()">업데이트</button>
<table>
<thead>
<tr>
<td>거치대 위치</td>
<td>거치대 수</td>
<td>현재 거치된 따릉이 수</td>
</tr>
</thead>
<tbody id="names-q1">
<tr>
<td>102. 망원역 1번출구 앞</td>
<td>22</td>
<td>0</td>
</tr>
<tr>
<td>103. 망원역 2번출구 앞</td>
<td>16</td>
<td>0</td>
</tr>
<tr>
<td>104. 합정역 1번출구 앞</td>
<td>16</td>
<td>0</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
$('names-q1').empty()
*ここでは、空の後ろに括弧が付いていないので、ずっとエラーが発生しています.空()も関数ですから、忘れないで!
練習AJAX-3
この例では、API情報を受信すると、ボタンをクリックするたびにRetanというロールが変更されます.
飛毛脚API
http://spartacodingclub.shop/sparta_api/rtan
楽坦のAPIには画像urlとmsgが含まれており、リフレッシュするたびに変更されます.この関数をボタンをクリックすればいいです.
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>JQuery 연습하고 가기!</title>
<!-- JQuery를 import 합니다 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style type="text/css">
div.question-box {
margin: 10px 0 20px 0;
}
div.question-box > div {
margin-top: 30px;
}
</style>
<script>
function q1() {
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/rtan",
data: {},
success: function (response) {
let url = response['url']
let msg = response['msg']
$("#img-rtan").attr("src", url); //src 부분을 URL로 바꾸고 싶다는 것
$("#text-rtan").text(msg);
}
})
}
</script>
</head>
<body>
<h1>JQuery+Ajax의 조합을 연습하자!</h1>
<hr/>
<div class="question-box">
<h2>3. 르탄이 API를 이용하기!</h2>
<p>아래를 르탄이 사진으로 바꿔주세요</p>
<p>업데이트 버튼을 누를 때마다 지웠다 새로 씌여져야 합니다.</p>
<button onclick="q1()">르탄이 나와</button>
<div>
<img id="img-rtan" width="300" src="http://spartacodingclub.shop/static/images/rtans/SpartaIcon11.png"/>
<h1 id="text-rtan">나는 ㅇㅇㅇ하는 르탄이!</h1>
</div>
</div>
</body>
</html>
*$('#id').これは、attr(「src」,url)id値を持つタグのsrcを受信したurlに置き換えることを意味する.ここでattrはHTML属性を扱うjQuery getter/setterメソッドである.
*$('#id').text(「text」)id値を持つタグ付きテキストをtextに変換することを意味する.
宿題:ファン名簿に天気情報を入れる
ファン名簿に天気情報を入れる
ロードが完了すると、天気APIを使用して天気を表示します.
ソウル天気API
http://spartacodingclub.shop/sparta_api/weather/seoul
$(document).ready(function(){
...
});
>>$(function(){...});로 줄여 쓸 수 있다
$(document).ready()はJavaScriptのonloadと同じ機能を持つ.つまり、ブラウザのロードが完了したら、次の実行文を実行します.$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/weather/seoul",
data: {},
success: function (response) {
let temp = response['temp']
$("#temp").text(temp);
}
})
});
<p>현재 기온: <span id="temp">0.00</span>도</p>
確かにひとつずつ作る楽しみがあります!
次の運転手さんはPsunですがそれが少しついた感じ
夜からPythonの勉強を始めたと知っていたのに...
ところで、パイは本当に遅いですね...ううう
Reference
この問題について(WIL2), 我々は、より多くの情報をここで見つけました https://velog.io/@isabel_noh/WIL2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol