在 div 中获取一个 span innerHTML
Get a spans innerHTML inside a div
嗨,我已经四处寻找几天了,但我真的找不到任何东西,我想要的是在 div 中调用一个 span 并获取 span innerHTML。
现在代码如下所示:
跨度如下所示:
function createTimer() {
return document.createElement("span");
}
如您所见,此跨度位于此 div 的内部:
var Stopwatch = {
init: function(elem, options) {
var timer = createTimer(),
startButton = createButton("start", start),
stopButton = createButton("stop", stop),
resetButton = createButton("reset", reset),
offset,
clock,
interval;
options = options || {};
options.delay = options.delay || 1;
elem.appendChild(timer);
elem.appendChild(startButton);
elem.appendChild(stopButton);
elem.appendChild(resetButton);
reset();
function createTimer() {
return document.createElement("span");
}
我曾尝试使用 Stopwatch.span.innerHTML
、.stopwatch span.innerHTML
和许多其他不同的方式来调用它。您可以使用此 .stopwatch span
在 css 中调用它,但这是我需要在按钮或类似 <button id="first" onclick=".stopwatch span.innerHTML;"></button>
中调用它的问题。
但它确实有效!如果有任何问题,请提前致谢! :)
更新: 这是一个凌乱的 JsFiddle http://jsfiddle.net/dzcv9847/
您必须深入研究该功能并将 var timer = createTimer(),
更改为 this.timer = createTimer();
才能使用 Stopwatch.timer.innerHTML;
之类的东西,但是现在创建计时器的方式不是按原样访问。
这无需更改即可工作:
window.onload=function() {
var elems = document.getElementsByClassName("basic");
for (var i = 0, len = elems.length; i < len; i++) {
Stopwatch.init(elems[i]);
}
document.getElementById("first").onclick=function() {
var val = document.querySelector('.stopwatch > span').innerHTML;
document.getElementById("lap").innerHTML=val;
}
}
更新:更优雅一点:
lapButton = createButton("lap", lap),
lapSpan = createTimer(),
...
function lap() {
lapSpan.innerHTML=timer.innerHTML;
}
function reset() {
clock = 0;
render(0);
lap();
}
我个人会在 .basic
div 元素中插入按钮(不要使用 id
,而是使用 class):
<div class="basic stopwatch">
<button class="get-timer" >Get milliseconds and display under this button onclick:</button>
<div class=output></div>
</div>
然后:
[编辑](已删除警告 @mplungjan)
var Stopwatch = {
init: function(elem, options) {
// ...
var getTimerBtn = elem.getElementsByClassName("get-timer")[0];
var outputElem = elem.getElementsByClassName("output")[0];
getTimerBtn.onclick = function(){
outputElem.innerText = timer.innerText;
}
// ...
}
}
这样,您可以拥有多个 timer
实例(参见演示),而无需分别为每个按钮重复代码。
嗨,我已经四处寻找几天了,但我真的找不到任何东西,我想要的是在 div 中调用一个 span 并获取 span innerHTML。 现在代码如下所示:
跨度如下所示:
function createTimer() {
return document.createElement("span");
}
如您所见,此跨度位于此 div 的内部:
var Stopwatch = {
init: function(elem, options) {
var timer = createTimer(),
startButton = createButton("start", start),
stopButton = createButton("stop", stop),
resetButton = createButton("reset", reset),
offset,
clock,
interval;
options = options || {};
options.delay = options.delay || 1;
elem.appendChild(timer);
elem.appendChild(startButton);
elem.appendChild(stopButton);
elem.appendChild(resetButton);
reset();
function createTimer() {
return document.createElement("span");
}
我曾尝试使用 Stopwatch.span.innerHTML
、.stopwatch span.innerHTML
和许多其他不同的方式来调用它。您可以使用此 .stopwatch span
在 css 中调用它,但这是我需要在按钮或类似 <button id="first" onclick=".stopwatch span.innerHTML;"></button>
中调用它的问题。
但它确实有效!如果有任何问题,请提前致谢! :)
更新: 这是一个凌乱的 JsFiddle http://jsfiddle.net/dzcv9847/
您必须深入研究该功能并将 var timer = createTimer(),
更改为 this.timer = createTimer();
才能使用 Stopwatch.timer.innerHTML;
之类的东西,但是现在创建计时器的方式不是按原样访问。
这无需更改即可工作:
window.onload=function() {
var elems = document.getElementsByClassName("basic");
for (var i = 0, len = elems.length; i < len; i++) {
Stopwatch.init(elems[i]);
}
document.getElementById("first").onclick=function() {
var val = document.querySelector('.stopwatch > span').innerHTML;
document.getElementById("lap").innerHTML=val;
}
}
更新:更优雅一点:
lapButton = createButton("lap", lap),
lapSpan = createTimer(),
...
function lap() {
lapSpan.innerHTML=timer.innerHTML;
}
function reset() {
clock = 0;
render(0);
lap();
}
我个人会在 .basic
div 元素中插入按钮(不要使用 id
,而是使用 class):
<div class="basic stopwatch">
<button class="get-timer" >Get milliseconds and display under this button onclick:</button>
<div class=output></div>
</div>
然后:
[编辑](已删除警告 @mplungjan)
var Stopwatch = {
init: function(elem, options) {
// ...
var getTimerBtn = elem.getElementsByClassName("get-timer")[0];
var outputElem = elem.getElementsByClassName("output")[0];
getTimerBtn.onclick = function(){
outputElem.innerText = timer.innerText;
}
// ...
}
}
这样,您可以拥有多个 timer
实例(参见演示),而无需分别为每个按钮重复代码。