使用 Javascript 给出 Span ID(一个接一个)
Give Span ID (ONE BY ONE) using Javascript
>我有很多跨度列表,例如
<span id="current"> hello </span>
<span> is </span>
<span> anyone </span>
<span> here</span>
我正在使用 JavaScript 执行操作
document.onkeypress = function(evt) {
};
我希望我的span id="current"
消失,下一个元素,即<span> is </span>
得到一个id="current"
.
在这里演示
var i = 1;
document.onkeypress = function (evt) {
var element = document.getElementById('current');
alert(element.textContent);
var sibling = element.parentNode.children;
element.attributes.id.nodeValue = "newId" + i;
sibling[i].id = "current";
i++;
};
我建议:
function idProgress (e) {
var self = this,
id = self.id,
next = self.nextElementSibling;
if (next === null) {
// this assumes you don't want to remove the last element
return false;
}
else {
self.parentNode.removeChild(self);
next.id = id;
next.addEventListener(e.type, idProgress);
}
}
var span = document.getElementById('current');
span.addEventListener('click', idProgress);
JS小提琴演示。
要逐个单击删除所有span
元素(包括最后一个(,请执行以下操作:
function idProgress (e) {
var self = this,
id = self.id,
next = self.nextElementSibling;
self.parentNode.removeChild(self);
if (next !== null) {
next.id = id;
next.addEventListener(e.type, idProgress);
}
}
var span = document.getElementById('current');
span.addEventListener('click', idProgress);
JS小提琴演示。
使用keypress
而不是click
(我在第一次阅读问题时忽略了这一点(:
function idProgress (e) {
var self = this.getElementById('current'),
id = self.id,
next = self.nextElementSibling,
key = e.which;
if (key !== 110 || next === null) {
return false;
}
else {
self.parentNode.removeChild(self);
next.id = id;
}
}
document.addEventListener('keypress', idProgress);
JS小提琴演示。
或:
function idProgress(e) {
var self = this.getElementById('current'),
id = self.id,
next = self.nextElementSibling,
key = e.which;
if (key == 110) {
self.parentNode.removeChild(self);
if (next !== null) {
next.id = id;
}
}
}
document.addEventListener('keypress', idProgress);
JS小提琴演示。
引用:
-
element.addEventListener()
. -
event.which
. -
nextElementSibling
. -
parentNode
. -
removeChild()
.
Vanilla JavaScript:
document.onkeypress = function( e ) {
var
outboundEl = document.getElementById('current'),
nextEl = outboundEl.nextElementSibling;
// remove the #current element from the DOM but keep a reference to it
outboundEl = outboundEl.parentNode.removeChild(outboundEl);
// make sure we only grab a reference to a span
if( nextEl && nextEl.tagName.toLowerCase() === 'span' ) {
nextEl.id = outboundEl.id;
}
};
下面是一个演示:http://jsfiddle.net/PSgQ2/
为什么不使用 JQuery 来实现这一点。将一个类分配给所有相关标签,如"class="deactiveSpan",并将一个span元素指定为class="activeSpan"。现在你可以得到这两种类型的元素,并使用jQuery轻松处理它。
相关文章:
- jQuery将文本从span标记复制到另一个span标记
- 使用javascript为网站的body标记中的所有数字添加一个span
- 鼠标悬停在一个 span 元素上多次触发
- 从上一个 span 元素中获取样式
- 在一定数量的字符后,在p中添加一个span标记
- 如何附加一个span标记并为每个id指定一个新名称
- 如何防止所有链接(其中有一个span标签)打开
- 如何获得文本包围的一个span标签,并保存到一个隐藏的输入值,当我点击跨度
- 使用javascript在h5中添加一个span标签
- 如何用jquery输出一个span到一个li
- 在DIV中插入一个SPAN
- 如何使用javascript在现有的span标签之前添加一个span
- 如果使用jQuery可以看到另一个span's的子类,则隐藏该类
- 将CSS应用于旋转木马幻灯片上的另一个span
- 用ng-model动态禁用一个span
- Javascript:如何判断一个span是否是段落中的第一件事
- Rspec单击一个span
- Javascript:更新一个Span Text
- 如何在jquery中添加一个span标签到另一个span标签中
- Jquery删除所有的第一个span元素