Javascript 根据单击的div返回不同的值

Javascript 根据单击的div返回不同的值,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我需要编写一个函数,根据单击的div返回字符串 <div id="footer"> <table> <tr> <td><div id="selectpeg1" onclick="selectPeg()"></div></td> <td><div id="selectpeg2" onclick="selectPeg()"></div></td> <td&

我需要编写一个函数,根据单击的div返回字符串

<div id="footer">
<table>
    <tr>
<td><div id="selectpeg1" onclick="selectPeg()"></div></td>
<td><div id="selectpeg2" onclick="selectPeg()"></div></td>
<td><div id="selectpeg3" onclick="selectPeg()"></div></td>
<td><div id="selectpeg4" onclick="selectPeg()"></div></td>
    </tr>
</table>
}示例1:

您可以使用“数据”属性。。。它们可以是任何东西<代码>数据>2'或任何您想要的内容

<ul class="thing-list">
  <li class="thing" data-info='one'>one</li>
  <li class="thing" data-info='two'>two</li>
  <li class="thing" data-info='three'>three</li>
</ul>
您当然可以在不使用jQuery的情况下编写:

但这里的关键是概念性的——所以,我只是写一些最快、最可读的东西。在大多数情况下,试图跳过jQuery只是当前的打包心态,在很多情况下并没有太多理由

下面是一个完整的示例,其中的颜色变化非常有趣:

示例2:

示例1:

您可以使用“数据”属性。。。它们可以是任何东西<代码>数据>2'或任何您想要的内容

<ul class="thing-list">
  <li class="thing" data-info='one'>one</li>
  <li class="thing" data-info='two'>two</li>
  <li class="thing" data-info='three'>three</li>
</ul>
您当然可以在不使用jQuery的情况下编写:

但这里的关键是概念性的——所以,我只是写一些最快、最可读的东西。在大多数情况下,试图跳过jQuery只是当前的打包心态,在很多情况下并没有太多理由

下面是一个完整的示例,其中的颜色变化非常有趣:


示例2:

如果您只想使用javascript而不想使用jquery,那么您需要进行以下更改

  • 在html中的函数调用中传递:

    onclick=“selectPeg(此)”

  • 在java脚本函数中添加函数参数:

    函数selectPeg(元素)

  • 这样您就可以轻松地从元素变量中获取数据

    function selectPeg(element) {
    
        var id = element.id
        var backgroud = element.style.background
        var color = element.style.color
    
        // do anything you want to do
    }
    

    如果您只想使用javascript而不想使用jquery,那么需要进行以下更改

  • 在html中的函数调用中传递:

    onclick=“selectPeg(此)”

  • 在java脚本函数中添加函数参数:

    函数selectPeg(元素)

  • 这样您就可以轻松地从元素变量中获取数据

    function selectPeg(element) {
    
        var id = element.id
        var backgroud = element.style.background
        var color = element.style.color
    
        // do anything you want to do
    }
    
    与的结合提供了一个干净的解决方案:

    选择点击功能(事件){ console.log(this.dataset.color);//TODO:使用颜色做一些事情 } document.querySelectorAll(“.selector”).forEach(元素=>{ element.style.setProperty(“--color”,element.dataset.color); 元素。addEventListener(“单击”,在SelectorClick上); });
    选择器{
    宽度:50px;
    高度:50px;
    边框样式:实心;
    边界半径:30px;
    背景色:var(--颜色,白色);
    }
    
    
    与结合可提供清洁的解决方案:

    选择点击功能(事件){ console.log(this.dataset.color);//TODO:使用颜色做一些事情 } document.querySelectorAll(“.selector”).forEach(元素=>{ element.style.setProperty(“--color”,element.dataset.color); 元素。addEventListener(“单击”,在SelectorClick上); });
    选择器{
    宽度:50px;
    高度:50px;
    边框样式:实心;
    边界半径:30px;
    背景色:var(--颜色,白色);
    }
    
    

    返回到哪里?返回值会发生什么变化?是否应将返回值记录到控制台?或者全局变量应该接收返回值吗?或者,返回值可能由回调处理。那么你想对函数返回的值做什么呢?我只需要一个返回函数。然后,我将根据此页脚中单击的div更改另一个div的颜色:)返回到哪里?返回值会发生什么变化?是否应将返回值记录到控制台?或者全局变量应该接收返回值吗?或者,返回值可能由回调处理。那么你想对函数返回的值做什么呢?我只需要一个返回函数。然后,我将根据在此页脚中单击的div更改另一个div的颜色:)是。jQuery只是一个JavaScript方法库,它使这些方法更容易阅读,并处理跨浏览器的问题。你可以用jQuery做的任何事情都可以用标准的JavaScript编写——这只是需要更多的工作,而且使用API也不是那么愉快。是的,但这不是我的想法,伙计。这些是我的工作要求projects@szubansky那么,你为什么要用
    jquery
    来标记你的问题呢?还有——既然这个概念已经概述了。。。您可以学习如何在没有jQuery的情况下获取数据属性,或者如何以非jQuery的方式查询选择器。问题得到了回答。我不会以你可以复制粘贴到项目中的方式写出来。这是一门你可以上的课程,完全是香草味的。祝你好运我知道了,警长,泰;)对jQuery只是一个JavaScript方法库,它使这些方法更容易阅读,并处理跨浏览器的问题。你可以用jQuery做的任何事情都可以用标准的JavaScript编写——这只是需要更多的工作,而且使用API也不是那么愉快。是的,但这不是我的想法,伙计。这些是我的工作要求projects@szubansky那么,你为什么要用
    jquery
    来标记你的问题呢?还有——既然这个概念已经概述了。。。您可以学习如何在没有jQuery的情况下获取数据属性,或者如何以非jQuery的方式查询选择器。问题得到了回答。我不会以你可以复制粘贴到项目中的方式写出来。这是一门你可以上的课程,完全是香草味的。祝你好运我知道了,警长,泰;)嘿,这非常有用,但是我添加了控制台日志,它似乎只打印id.console.log(颜色)和console.log(背景)的值,在consoleif元素中输出一个空的韵文。如果style不起作用,那么您可以尝试
    var computedstyle=window.getComputedStyle(元素,null)
    获取应用于元素的所有样式。然后只需执行computedstyle.background和computedstyle,color。如何从中获取背景色作为字符串?它返回一个带有编号属性的styleyou can do computedstyle.Background访问此链接了解更多详细信息嘿,这非常有用,但我添加了控制台日志,它似乎只打印id.console.log(颜色)的值