gpt4 book ai didi

javascript - 访问
中的 文本

转载 作者:行者123 更新时间:2023-11-27 23:51:29 25 4
gpt4 key购买 nike

我的第一篇文章,请放轻松!

我是编程的新手,我正在制作一个基于浏览器的应用程序,它将跟踪到达的航类(我白天是一名飞机机械师)并使用 .effect("highlight") 使元素在到达时间临近。这将显示在我们准备好的房间的大显示器上。

并非所有代码都处于最后阶段。其中一些仍然只是为了测试功能是否有效而设置,例如下面的 pulseRed 和 pulseYellow 功能。我只在 chrome 中测试过它,目前只打算让它在 chrome 中运行,所以不能保证它在其他浏览器中也能正常工作。

这是我的问题...

创建的每个新计时器都是一个具有唯一 ID 的新 div。每个 div 包含几个 span 元素,用于在监视器上显示信息和存储数据。

如果您运行此代码,标记为#problem area # 的 block 应该提醒 arrivalHour 的值,它确实如此!成功!...有点。问题是,在第一个计时器之后,每次函数触发时,它都会将所有的 arrivalHour 值塞到一个窗口中。因此,如果 3 个计时器的值分别为 05、08 和 12,它将显示 050812,并且由于循环中每个计时器弹出一次窗口,它会显示 3 次。我想要做的是让每个窗口显示来自 div 中那个 ONE span 元素的信息。我假设我需要索引我所在的循环的哪个元素,但我很困惑 [z] 索引应该去哪里(如果这甚至是这里的修复)。一旦我可以从这些跨度中提取单个值,我就可以设置其余的循环和语句来处理数据,我基本上就完成了。

哇!解释很长,但我想确保我的问题有道理。

$(document).ready(function() {
var i = 01; //variable for iterating ID's for each timer below
$("#startButton").fadeTo("fast",0.5);
$("#startButton").mouseenter(function() {
$("#startButton").fadeTo("slow",1);
});
$("#startButton").mouseleave(function() {
$("#startButton").fadeTo("slow",0.5);
});
// pulse function causes the called object to blink red 3 times.
var pulseRed = function() {
$(".timers").effect("highlight", {color: 'red'}).fadeIn();
$(".timers").effect("highlight", {color: 'red'}).fadeIn();
$(".timers").effect("highlight", {color: 'red'}).fadeIn();
}
// pulse function to blink the target div yellow - currently pulses ALL div's for testing
var pulseYellow = function() {
$(".timers").effect("highlight").fadeIn();
$(".timers").effect("highlight").fadeIn();
$(".timers").effect("highlight").fadeIn();
}
setInterval(function(){ //set up just for testing purposes
pulseYellow();
pulseRed();
for (var z = 1; z <= ($(".timers").length); z++) {
alert($('div.timers span.arrivalHour').text()); //<---PROBLEM AREA!!!!!
}
},5000);

//time data formatting for proper display
var d = new Date();
var currentHours = function() {
var hourCheck = d.getHours();
if (hourCheck <= 9) {
return("0" + hourCheck);
}
else {
return(hourCheck);
}
};
var currentMinutes = function() {
var minCheck = d.getMinutes();
if (minCheck <= 9) {
return("0" + minCheck);
}
else {
return(minCheck);
}
};
//button to create the new timer and related functions.
$("#startButton").click(function() {
var tailNumber = $("#tail").val();
var borderColor = $("#colorPicker").val();
var alertTime = $("#alert").val();
var arrHour = $("#hour").val();
var arrMinute = $("#minute").val();
var remarks = $("#discrepancy").val();
// example of similar code at http://jsfiddle.net/nick_craver/TTHDQ/
//creates a new div containing all of the user input data, iterates a new ID so that div's can be blinked individually
$("<div />", { "class":"timers", id:"timer"+i})
.append("<span class='tailNumber'>"+tailNumber +' '+"</span><span class='arrivalHour'>"+arrHour+"</span><span>-</span><span class='arrivalMinute'>"+arrMinute+"</span><span class='table'>"+' ' +"</span><span class='remarks' style='margin: 0 auto; text-align: right'>"+remarks+"</span><div class='delete'>DELETE</div></div>")
.appendTo("#main");
$("#timer" + i).css('border', '2px solid ' +borderColor);
i++;

//delete timer DIV's when no longer needed
$(".delete").click(function() {
$(this).closest(".timers").remove();
});
$('#getTail').get(0).reset();
});
});

编辑:添加 HTML

<!DOCTYPE html>
<html>
<head>
<title>Flight Timer</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
<script type="text/javascript" src="script.js"></script>
</head>
<body id="main">
<div id="menu">
<form id="getTail" action="">
Flight Tracker<br>
<input id="tail" type="text" name="Tail Number" placeholder="Tail #">
<select id="colorPicker">
<option value="Green">Color</option>
<option value="Red">Red</option>
<option value="Yellow">Yellow</option>
<option value="Green">Green</option>
<option value="Blue">Blue</option>
<option value="Orange">Orange</option>
</select>
<select id="alert">
<option value="default">Flash...</option>
<option value="1">1 minute prior</option>
<option value="5">5 minutes prior</option>
<option value="10">10 minutes prior</option>
<option value="15">15 minutes prior</option>
</select>
<input id="hour" type="text" name="hour" placeholder="Hour">
<br>
<input id="minute" type="text" name="minute" placeholder="Minute">
<input id="discrepancy" type="text" name="pirep" placeholder="Discrepancy or action">
</form>
<div id="startButton">
Add Timer
</div>
</body>
</html>

最佳答案

如果我理解正确,您需要为每个计时器(由 $('.timers') 指定)单独发出警报。如果是这种情况,您希望将 for 语句切换为如下所示:

$("div.timers").each(function() {
alert($(this).find('span.arrivalHour').text());
});

将所有文本组合在一起的原因是 $('div.timers span.arrivalHour') 用作全局选择 - 这意味着它将检索所有匹配项页面中的元素。我建议的代码遍历每个计时器,检索每个计时器的到达时间。

关于javascript - 访问 <div> 中的 <span> 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com