Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击元素的顺序_Javascript_Html_Css - Fatal编程技术网

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');
}