- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 div 标签,并且动态添加一组 p 标签,它将从 json 获取值。问题是 p 标签被添加到同一个 div 中,而不是在单独的框中打印。下面是我的代码尝试实现逻辑。价格标签单独打印在同一 div 中,而其他标签未显示。
window.onload = function() {
document.getElementById('returnDate').style.display = 'none';
document.getElementsByClassName("flightDetails")[0].style.display = "none";
flightDetails = [{
"airline": "H-200",
"from": "Bangaluru(BLR)",
"to": "Delhi(DEL)",
"detail": [{
"FlightNum": "H-201",
"date": "2019-12-30",
"price": "3900",
"departTime": "12:00 PM",
"arriveTime": "14:00 PM",
"seats": "10"
}, {
"FlightNum": "H-202",
"date": "2019-12-31",
"price": "3000",
"departTime": "17:30 PM",
"arriveTime": "19:30 PM",
"seats": "3"
}, {
"FlightNum": "H-203",
"date": "2019-06-01",
"price": "2100",
"departTime": "09:00 AM",
"arriveTime": "11:00 AM",
"seats": "7"
}]
}, {
"airline": "K-200",
"from": "Delhi(DEL)",
"to": "Bangaluru(BLR)",
"detail": [{
"FlightNum": "K-201",
"date": "2019-12-30",
"price": "3000",
"departTime": "12:00 PM",
"arriveTime": "14:00 PM",
"seats": "10"
}, {
"FlightNum": "K-202",
"date": "2019-12-31",
"price": "3000",
"departTime": "17:30 PM",
"arriveTime": "19:30 PM",
"seats": "3"
}, {
"FlightNum": "K-203",
"date": "2019-06-01",
"price": "2100",
"departTime": "09:00 AM",
"arriveTime": "11:00 AM",
"seats": "7"
}]
},
{
"airline": "B-200",
"from": "Chennai(CHN)",
"to": "Goa(GOA)",
"detail": [{
"FlightNum": "B-201",
"date": "2019-12-30",
"price": "4000",
"departTime": "12:00 PM",
"arriveTime": "14:00 PM",
"seats": "20"
}, {
"FlightNum": "B-202",
"date": "2019-12-31",
"price": "3000",
"departTime": "17:30 PM",
"arriveTime": "19:30 PM",
"seats": "3"
}, {
"FlightNum": "B-203",
"date": "2019-06-01",
"price": "2100",
"departTime": "09:00 AM",
"arriveTime": "11:00 AM",
"seats": "7"
}]
},
{
"airline": "A-201",
"from": "Chennai(CHN)",
"to": "Delhi(DEL)",
"detail": [{
"FlightNum": "A-202",
"date": "2019-12-30",
"price": "3900",
"departTime": "12:00 PM",
"arriveTime": "14:00 PM",
"seats": "10"
}, {
"FlightNum": "A-203",
"date": "2019-12-31",
"price": "3000",
"departTime": "17:30 PM",
"arriveTime": "19:30 PM",
"seats": "3"
}, {
"FlightNum": "A-204",
"date": "2019-06-01",
"price": "2100",
"departTime": "09:00 AM",
"arriveTime": "11:00 AM",
"seats": "7"
}]
}, {
"airline": "A-301",
"from": "Delhi(DEL)",
"to": "Hydrabad(HYD)",
"detail": [{
"FlightNum": "A-302",
"date": "2019-05-30",
"price": "3900",
"departTime": "08:10 AM",
"arriveTime": "10:10 AM",
"seats": "5"
}, {
"FlightNum": "A-303",
"date": "2019-05-30",
"price": "3000",
"departTime": "15:45 PM",
"arriveTime": "17:45 PM",
"seats": "1"
}, {
"FlightNum": "A-304",
"date": "2019-06-01",
"price": "2190",
"departTime": "19:20 PM",
"arriveTime": "21:20 PM",
"seats": "12"
}]
}, {
"airline": "A-401",
"from": "Calicut(CAL)",
"to": "Delhi(DEL)",
"detail": [{
"FlightNum": "A-402",
"date": "2019-05-30",
"price": "3000",
"departTime": "09:00 AM",
"arriveTime": "10:50 AM",
"seats": "3"
}, {
"FlightNum": "A-403",
"date": "2019-05-30",
"price": "2910",
"departTime": "14:00 PM",
"arriveTime": "15:50 PM",
"seats": "5"
}, {
"FlightNum": "A-404",
"date": "2019-06-01",
"price": "3180",
"departTime": "21:10 AM",
"arriveTime": "23:00 AM",
"seats": "12"
}]
}, {
"airline": "J-500",
"from": "Delhi(DEL)",
"to": "Chennai(CHN)",
"detail": [{
"FlightNum": "J-502",
"date": "2019-05-30",
"price": "2820",
"departTime": "07:50 AM",
"arriveTime": "09:40 AM",
"seats": "7"
}, {
"FlightNum": "J-503",
"date": "2019-05-30",
"price": "2901",
"departTime": "11:00 AM",
"arriveTime": "13:10 PM",
"seats": "21"
}, {
"FlightNum": "J-504",
"date": "2019-06-01",
"price": "3000",
"departTime": "15:20 PM",
"arriveTime": "17:10 PM",
"seats": "3"
}]
}
];
inputOrigin = document.getElementById('origin');
inputDesination = document.getElementById("desination");
originOptions = document.getElementById('originCountry');
destinationOptions = document.getElementById('desinationCountry');
var originCategories = new Set();
var destinationCategories = new Set();
flightDetails.forEach((o) => originCategories.add(o.from));
originCategories = [...originCategories];
flightDetails.forEach((o) => destinationCategories.add(o.to));
destinationCategories = [...destinationCategories];
for (i = 0; i < originCategories.length; i++) {
originOptions.innerHTML += ' <option>' + originCategories[i] + '<option>';
}
for (i = 0; i < destinationCategories.length; i++) {
destinationOptions.innerHTML += ' <option>' + destinationCategories[i] + '<option>';
}
}
function searchFlights() {
document.getElementsByClassName("searchResultsHeader")[0].style.borderBottom = "1px solid #ccc;";
var orginVal, onewayVal, destinationVal, departureVal, returnDateVal, passengersVal, ErrorMessage;
ErrorMessage = document.getElementById("errorMsg");
onewayVal = document.getElementById("oneWay").value;
orginVal = document.getElementById("origin").value;
destinationVal = document.getElementById("desination").value;
departureVal = document.getElementById("departureDate").value;
returnDateVal = document.getElementById("returnDate").value;
passengersVal = document.getElementById("passengers").value;
try {
if (orginVal === "" || onewayVal === "" || destinationVal === "" || departureVal === "" || passengersVal === "") {
throw "Please fill all the details";
} else if (orginVal === undefined || destinationVal === undefined) {
throw "Please select Valid origin and destination."
} else if (destinationVal === orginVal) {
throw "Please select different origin and destination."
} else {
document.getElementsByClassName("selectFlight")[0].style.display = "none";
document.getElementsByClassName("flightDetails")[0].style.display = "block";
document.getElementById("fromTo").innerHTML = orginVal + ' > ' + destinationVal;
var departDay = moment(departureVal).format("Do MMMM YYYY");
var arriveDay = moment(returnDateVal).format("Do MMMM YYYY");
document.getElementById('oneWay').checked ?
document.getElementById("FlightTime").innerHTML = 'Depart:' + departDay :
document.getElementById("FlightTime").innerHTML = 'Depart:' + departDay + '<p>' + 'Arrive:' + arriveDay + '</p>';
document.getElementById('roundTrip').checked ? document.getElementsByClassName("flightDetails")[0].style.marginTop = "60px" : '';
var matches = flightDetails.filter(detail => detail.from === orginVal && detail.to === destinationVal);
for (i = 0; matches[0].detail.length; i++) {
var div = document.createElement('div');
div.className = 'flightDetailBox';
div.innerHTML = '<p id="flightCost">' + 'Rs' + matches[0].detail[i].price + '</p>' +
'<p id="flightID">' + matches[0].detail[i].FlightNum + '</p>' +
'<p id="fromTo">' + matches[0].from > +matches[0].to + '</p>' +
'<p id="departTime">' + matches[0].detail[i].departTime + '</p>' +
'<p id="ariveTime">' + matches[0].detail[i].arriveTime + '</p>' +
+'<button type="submit" id="bookTicketButton" onclick="bookTicket()">BOOK TICKET</button>';
document.getElementById('flightDetails').appendChild(div);
}
}
} catch (err) {
ErrorMessage.innerHTML = err;
}
}
function tripTypeFunc() {
if (document.getElementById('oneWay').checked) {
document.getElementById('returnDate').style.display = 'none';
} else {
document.getElementById('returnDate').style.display = 'block';
}
}
function bookTicket() {
document.getElementById('modal').style.display = "block";
}
$(function() {
var headerSubText = $('#headerSubText').offset().left;
$("#headerSubText").css({
left: headerSubText
}).animate({
"left": "0px"
}, "slow");
var dateFormat = "mm/dd/yy",
from = $("#departureDate")
.datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1
})
.on("change", function() {
to.datepicker("option", "minDate", getDate(this));
}),
to = $("#returnDate").datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 2
})
.on("change", function() {
from.datepicker("option", "maxDate", getDate(this));
});
function getDate(element) {
var date;
try {
date = $.datepicker.parseDate(dateFormat, element.value);
} catch (error) {
date = null;
}
return date;
}
});
header {
font-size: 20px;
background: #fff;
color: green;
padding: 20px 15px;
text-align: center;
font-weight: bold; }
header p {
margin: 0px;
position: absolute;
right: 0;
font-size: 16px; }
form {
margin-top: 15px;
height: 100vw; }
form .tripDetails {
width: 25%;
float: left;
font-size: 18px; }
form .tripDetails .flightInput {
-webkit-border: 1px solid #ddd;
-moz-border: 1px solid #ddd;
-ms-border: 1px solid #ddd;
border: 1px solid #ddd;
display: block;
height: 25px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
border-radius: 5px;
margin: 10px;
width: 90%;
padding: 5px 10px; }
form .tripDetails .searchButton {
border: none;
background: #DD4E32;
color: #fff;
margin: auto;
display: block;
padding: 5px; }
form .searchResults {
width: 73%;
float: right; }
form .searchResults .selectFlight {
-webkit-border: none;
-moz-border: none;
-ms-border: none;
border: none;
text-align: center;
font-size: 35px; }
form .searchResults .flightDetails {
-webkit-border: 1px solid #ccc;
-moz-border: 1px solid #ccc;
-ms-border: 1px solid #ccc;
border: 1px solid #ccc;
height: 100px;
margin: 30px 0px 15px 0px; }
form .searchResults button {
margin-right: 12px;
background: #DD4E32;
color: #fff;
float: right;
-webkit-border: none;
-moz-border: none;
-ms-border: none;
border: none; }
form .searchResults #modal {
position: fixed;
top: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99999;
height: 100%;
width: 100%;
display: none; }
form .searchResults #modal #closeButton {
text-align: center;
padding: 5PX;
margin-top: 15PX; }
form .searchResults #modal .modalconent {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #fff;
width: 20%;
padding: 50px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
border-radius: 10px; }
form .searchResults .searchResultsHeader {
font-size: 20px; }
form .searchResults .searchResultsHeader #fromTo {
float: left; }
form .searchResults .searchResultsHeader #FlightTime {
float: right; }
form .searchResults .searchResultsHeader #FlightTime p {
margin: 0px; }
form #errorMsg {
color: red;
padding-left: 15px; }
/* Iphone */
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2) {
form {
margin: 15px; }
form .tripDetails {
width: 100%;
white-space: nowrap; }
form .searchResults {
width: 100%;
margin-top: 30px; }
form .searchResults .flightDetails {
margin-top: 15px !important; }
form .searchResults .searchResultsHeader #fromTo {
width: 100%; }
form .searchResults .searchResultsHeader #FlightTime {
width: 100%;
float: none; } }
/* tablets */
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 1) {
form {
margin: 15px; }
form .tripDetails {
width: 25%;
white-space: nowrap; }
form .searchResults {
width: 70%;
margin-left: 15px; }
form .searchResults .searchResultsHeader #fromTo {
width: 50%; }
form .searchResults .searchResultsHeader #FlightTime {
text-align: left; }
form .searchResults .searchResultsHeader #FlightTime p {
margin: 0px; } }
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Flight booking</title>
<link rel="stylesheet" type="text/css" href="./css/main.css" />
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
<script src="./FlightBooking.js"></script>
</head>
<body>
<header>
T-Booking
<p id="headerSubText">Book and enjoy your journey with us</p>
</header>
<form name="searchFlightForm" onsubmit="return searchFlights()">
<div class="tripDetails">
<input type="radio" name="tripType" id="oneWay" checked onclick="tripTypeFunc()">One way
<input type="radio" name="tripType" id="roundTrip" onclick="tripTypeFunc()"> Round trip
<input type="text" autocomplete="off" id="origin" list="originCountry" placeholder="Enter Origin" class="flightInput">
<datalist id="originCountry"> </datalist>
<input type="text" autocomplete="off" id="desination" list="desinationCountry" placeholder="Enter Destination"
class="flightInput" />
<datalist id="desinationCountry"></datalist>
<input type="text" id="departureDate" autocomplete="off" name="departureDate" placeholder="Departure Date" class="flightInput" />
<input type="text" id="returnDate" autocomplete="off" name="returnDate" placeholder="Return Date" class="flightInput" />
<input type="number" id="passengers" min="1" name="passengers" placeholder="Passengers" class="flightInput" />
<p id="errorMsg"></p>
<input type="button" value="Search" class="searchButton" onclick="searchFlights()">
</div>
<div class="searchResults">
<p class="selectFlight">Please fill your flight details</p>
<div class="searchResultsHeader">
<div id="fromTo"></div>
<div id="FlightTime"></div>
</div>
<div class="flightDetails" id="flightDetails">
</div>
<div>
<div id="modal">
<div class="modalconent">
<p>Ticket booked succesfully..!!</p>
<button id="closeButton">Close</button>
</div>
</div>
</div>
</div>
</div>
</form>
</body>
</html>
HTML
<div class="flightDetails" id="flightDetails"></div>
JavaScript
for (i = 0; matches[0].detail.length; i++) {
var div = document.createElement('div');
div.className = 'flightDetailBox';
div.innerHTML = '<p id="flightCost">' + 'Rs' + matches[0].detail[i].price + '</p>'
'<p id="flightID">' + matches[0].detail[i].FlightNum + '</p>'
'<p id="fromTo">' + matches[0].from > +matches[0].to + '</p>'
'<p id="departTime">' + matches[0].detail[i].departTime + '</p>'
'<p id="ariveTime">' + matches[0].detail[i].arriveTime + '</p>' +
'<button type="submit" id="bookTicketButton" onclick="bookTicket()">BOOK TICKET</button>';
document.getElementById('flightDetails').appendChild(div);
}
最佳答案
尝试下一个代码,您缺少 <p>
之间的字符串连接运算符元素,并且您有一个比较器符号 <
在这一切的中间应该是一个字符串。
for (i = 0; matches[0].detail.length; i++)
{
var div = document.createElement('div');
div.className = 'flightDetailBox';
div.innerHTML = '<p id="flightCost">' + 'Rs' + matches[0].detail[i].price + '</p>' +
'<p id="flightID">' + matches[0].detail[i].FlightNum + '</p>' +
'<p id="fromTo">' + matches[0].from + '>' + matches[0].to + '</p>' +
'<p id="departTime">' + matches[0].detail[i].departTime + '</p>' +
'<p id="ariveTime">' + matches[0].detail[i].arriveTime + '</p>' +
'<button type="submit" id="bookTicketButton" onclick="bookTicket()">BOOK TICKET</button>';
document.getElementById('flightDetails').appendChild(div);
}
另一种选择是使用 template literals :
for (i = 0; matches[0].detail.length; i++)
{
var div = document.createElement('div');
div.className = 'flightDetailBox';
div.innerHTML = `<p id="flightCost">Rs ${matches[0].detail[i].price}</p>` +
`<p id="flightID">${matches[0].detail[i].FlightNum}</p>` +
`<p id="fromTo">${matches[0].from} > ${matches[0].to}</p>` +
`<p id="departTime">${matches[0].detail[i].departTime}</p>` +
`<p id="ariveTime">${matches[0].detail[i].arriveTime}</p>` +
`<button type="submit" id="bookTicketButton" onclick="bookTicket()">BOOK TICKET</button>`;
document.getElementById('flightDetails').appendChild(div);
}
关于javascript - 使用 javascript 添加基于 json 值的动态 div 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54735356/
我的问题:非常具体。我正在尝试想出解析以下文本的最简单方法: ^^domain=domain_value^^version=version_value^^account_type=account_ty
好吧,这就是我的困境: 我正在为 Reddit 子版 block 开发常见问题解答机器人。我在 bool 逻辑方面遇到了麻烦,需要一双更有经验的眼睛(这是我在 Python 中的第一次冒险)。现在,该
它首先遍历所有 y 值,然后遍历所有 x 值。我需要 X 和 y 同时改变。 For x = 3 To lr + 1 For y = 2 To lr anyl.Cells(x, 1)
假设我有一个包含 2 列的 Excel 表格:单元格 A1 到 A10 中的日期和 B1 到 B10 中的值。 我想对五月日期的所有值求和。我有3种可能性: {=SUM((MONTH(A1:A10)=
如何转换 Z-score来自 Z-distribution (standard normal distribution, Gaussian distribution)到 p-value ?我还没有找到
我正在重写一些 Javascript 代码以在 Excel VBA 中工作。由于在这个网站上搜索,我已经设法翻译了几乎所有的 Javascript 代码!但是,有些代码我无法准确理解它在做什么。这是一
我遇到过包含日期格式的时间戳日期的情况。然后我想构建一个图表,显示“点击”项目的数量“每天”, //array declaration $array1 = array("Date" => 0); $a
我是scala的新手! 我的问题是,是否有包含成员的案例类 myItem:Option[String] 当我构造类时,我需要将字符串内容包装在: Option("some string") 要么 So
我正在用 PHP 创建一个登录系统。我需要用户使用他或她的用户名或电子邮件或电话号码登录然后使用密码。因为我知道在 Java 中我们会像 email==user^ username == user 这
我在 C++ 项目上使用 sqlite,但是当我在具有文本值的列上使用 WHERE 时出现问题 我创建了一个 sqlite 数据库: CREATE TABLE User( id INTEGER
当构造函数是显式时,它不用于隐式转换。在给定的代码片段中,构造函数被标记为 explicit。那为什么在 foo obj1(10.25); 情况下它可以工作,而在 foo obj2=10.25; 情况
我知道这是一个主观问题,所以如果需要关闭它,我深表歉意,但我觉得它经常出现,让我想知道是否普遍偏爱一种形式而不是另一种形式。 显然,最好的答案是“重构代码,这样你就不需要测试是否存在错误”,但有时没有
这两个 jQuery 选择器有什么区别? 以下是来自 w3schools.com 的定义: [attribute~=value] 选择器选择带有特定属性,其值包含特定字符串。 [attribute*=
为什么我们需要CSS [attribute|=value] Selector根本当 CSS3 [attribute*=value] Selector基本上完成相同的事情,浏览器兼容性几乎相似?是否存在
我正在解决 regx 问题。我已经有一个像这样的 regx [0-9]*([.][0-9]{2})。这是 amont 格式验证。现在,通过此验证,我想包括不应提供 0 金额。比如 10 是有效的,但
我正在研究计算机科学 A 考试的样题,但无法弄清楚为什么以下问题的正确答案是正确的。 考虑以下方法。 public static void mystery(List nums) { for (
好的,我正在编写一个 Perl 程序,它有一个我收集的值的哈希值(完全在一个完全独立的程序中)并提供给这个 Perl 脚本。这个散列是 (string,string) 的散列。 我想通过 3 种方式对
我有一个表数据如下,来自不同的表。仅当第三列具有值“债务”并且第一列(日期)具有最大值时,我才想从第四列中获取最大值。最终值基于 MAX(DATE) 而不是 MAX(PRICE)。所以用简单的语言来说
我有一个奇怪的情况,只有错误状态保存到数据库中。当“状态”应该为 true 时,我的查询仍然执行 false。 我有具有此功能的 Controller public function change_a
我有一个交易表(针对所需列进行了简化): id client_id value 1 1 200 2 2 150 3 1
我是一名优秀的程序员,十分优秀!