Javascript 单击元素的顺序
对于这一部分,我们将创建一个函数并给它一个参数。然后,我们将把样式添加到参数中,而不是使用Javascript 单击元素的顺序,javascript,html,css,Javascript,Html,Css,对于这一部分,我们将创建一个函数并给它一个参数。然后,我们将把样式添加到参数中,而不是使用this.style.border(因为它将引用函数) function addBorderTo(thisImage) { thisImage.style.border = '4px solid #00f'; } 然后在调用函数addBorderTo(this)时,将参数更改为this 4-显示所单击元素的详细信息 我们将获得保存图像细节的元素(li或p) ,然后通过上述函数获取保存图像名称的单击图
this.style.border
(因为它将引用函数)
function addBorderTo(thisImage) {
thisImage.style.border = '4px solid #00f';
}
然后在调用函数addBorderTo(this)时,将参数更改为this
代码>
4-显示所单击元素的详细信息
我们将获得保存图像细节的元素(li
或p)
,然后通过上述函数获取保存图像名称的单击图像的alt属性
function showImageDetails(thisImage) {
var imgDetails = document.querySelectorAll('.imgDetails p')[1];
imgDetails.textContent = thisImage.getAttribute('alt');
}
然后可以优化代码,使其如下所示:
var images=document.getElementsByClassName('high');
var imagesLen=images.length;
var imgDetails=document.querySelectorAll('.imgDetails p')[1];
//循环浏览每个图像,并为每个图像添加EventListener
对于(var i=0;i
.cont{
宽度:700px;
列表样式类型:无;
溢出:隐藏
}
.详细信息{
宽度:100px;
浮动:左;
利润上限:30像素
}
.IMG细节p:第一个孩子{
文字装饰:下划线;
}
.imagesHolder{
浮动:左
}
李先生{
显示:内联块
}
图像选择
图像名称
只需几次操作即可完成:
1-获取元素
要获取元素,有五种方法:
document.getElementById('idName')
document.getElementsByClassName('classname')[元素索引]
(0基本索引)
document.getElementsByTagName(“标记名”)[元素索引]
(0基本索引)
document.querySelectorAll('.class或#id或tag')[元素索引]
(0基本索引)
document.querySelector('.class或#id或tag')
(将返回第一个元素)
例如,我们将按类名获取元素:
var image = document.getElementsByClassName('high')[0];
但是[0]
将获得第一个图像,我们需要获得所有图像,因此我们将使用for
循环使变量等于0并增加它,直到到达最后一个图像(images.length),然后将此变量替换为0
var image = document.getElementsByClassName('high');
for ( var i = 0; i < image.length; i++ ) {
image[i].addEventListener('click', function () {
// functions to be invoked
});
}
3-为单击的元素添加边框
对于这一部分,我们将创建一个函数并给它一个参数。然后,我们将把样式添加到参数中,而不是使用this.style.border
(因为它将引用函数)
function addBorderTo(thisImage) {
thisImage.style.border = '4px solid #00f';
}
然后在调用函数addBorderTo(this)时,将参数更改为this
代码>
4-显示所单击元素的详细信息
我们将获得保存图像细节的元素(li
或p)
,然后通过上述函数获取保存图像名称的单击图像的alt属性
function showImageDetails(thisImage) {
var imgDetails = document.querySelectorAll('.imgDetails p')[1];
imgDetails.textContent = thisImage.getAttribute('alt');
}
然后可以优化代码,使其如下所示:
var images=document.getElementsByClassName('high');
var imagesLen=images.length;
var imgDetails=document.querySelectorAll('.imgDetails p')[1];
//循环浏览每个图像,并为每个图像添加EventListener
对于(var i=0;i
.cont{
宽度:700px;
列表样式类型:无;
溢出:隐藏
}
.详细信息{
宽度:100px;
浮动:左;
利润上限:30像素
}
.IMG细节p:第一个孩子{
文字装饰:下划线;
}
.imagesHolder{
浮动:左
}
李先生{
显示:内联块
}
图像选择
图像名称
使用Jquery解决这类问题更快、更容易。我现在正在学习JavaScript,我对Jquery一无所知。我认为最好不要从Jquery开始。在使用库之前,最好先了解基本知识(JavaScript)。使用Jquery解决这类问题更快、更容易。我现在正在学习JavaScript,我对Jquery一无所知。我认为最好不要从Jquery开始。在使用库之前,最好先了解基本知识(JavaScript)。如果OP不想使用jQuery怎么办?@Jorrex我向他展示了一种方法。如果OP不想使用jQuery,那么它就不会使用它。我看不出问题所在……OP说他还在学习JavaScript。在我看来,最好不要把新手和图书馆混为一谈@Dest我只是想知道,不想在某种程度上冒犯你:)我确实同意jQuery是最简单的方法,但是如果他还在学习Javascript,也许最好从根开始。如果他愿意学习jQuery,你应该知道普通Javascript的基础知识。我没有读过OP说他在学习Javascript的更新。。。很抱歉如果我想帮他。。。我不知道你怎么了。。。如果他想学习javascript,我看到了一种方法,问题在哪里?这只是一个例子如何处理jQuery如果OP不想使用jQuery怎么办?@Jorrex
// List.children.lenght and imgs.children.length must always be the same!
var imgs = document.getElementById("images");
var list = document.getElementById("list");
var cN = "active";
for (var i = 0; i < imgs.children.length; i += 1) {
(function(i) {
imgs.children[i].addEventListener("click", function() {
this.className === "" ? this.className = cN : this.className = ""; // Toggle class name
// Swap img.alt with li.innerHTML
var temp = list.children[i].innerHTML;
list.children[i].innerHTML = this.alt;
this.alt = temp;
});
})(i);
}
var image = document.getElementsByClassName('high')[0];
var image = document.getElementsByClassName('high');
for ( var i = 0; i < image.length; i++ ) {
image[i].addEventListener('click', function () {
// functions to be invoked
});
}
function resetBorder() {
for (var v = 0; v < images.length; v++) {
images[v].style.border = '';
}
}
function addBorderTo(thisImage) {
thisImage.style.border = '4px solid #00f';
}
function showImageDetails(thisImage) {
var imgDetails = document.querySelectorAll('.imgDetails p')[1];
imgDetails.textContent = thisImage.getAttribute('alt');
}