javascript - 如何在页面上单击按钮时将 css 与原生 js 一起应用

标签 javascript html css

我想在单击页面上的按钮时应用样式。该按钮具有数据选择器属性。该属性是我要应用 css 的选择器。

HTML 示例:

<ul>
<li><button class="button" data-selector="#skip > p > a">Button 1</button></li>
<li><button class="button" data-selector="#menu > div" >Button 2</button></li>
<li><button class="button" data-selector="#social">Button 3</button></li>
</ul>

<div id=#menu>
<div id="skip">
<p><a href="/pages">Hello</a></p>
</div>

<div id=social>
<p>Example 1</p>
<p>Example 2</p>
</div>
</div>

  <script type="text/javascript">
var error = document.querySelectorAll(".button");
    for (var i=0;i<error.length;i++){
        error[i].addEventListener("click", function() {
            var selector = error[i].getAttribute('data-selector');
            selector.style.border = '2px solid red';
        }, false);
    }
</script>

结果: 错误[i]未定义

我使用原生 js,因为我无法使用 jQuery

PS:抱歉我的英语不好

最佳答案

两个错误。首先,您将获得选择器字符串,但实际上从未获得它所代表的 DOM 元素。其次,您需要在函数上下文中使用 this。工作代码:

 var error = document.querySelectorAll(".button");
 for (var i=0;i<error.length;i++){
    error[i].addEventListener("click", function() {
        var selector = this.getAttribute('data-selector');
        document.querySelectorAll(selector)[0].style.border = '2px solid red';
    }, false);
}

jsfiddle:https://jsfiddle.net/h5eqg4tp/

关于javascript - 如何在页面上单击按钮时将 css 与原生 js 一起应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41745448/

相关文章:

javascript - 在 jquery 客户端中从服务器端格式化 Json 字符串

背景图片中的 CSS 变量

html - 从一个页面移动到另一个页面时,导航菜单会闪烁,仅在 Chrome 中

javascript - Jquery - 调整大小后单击事件不起作用

javascript - 当内容分布在多行时显示更多内容的按钮

css - 字体粗细为 300 的 Lato 使用细线而不是浅色变体

javascript - 使用 Jquery 更改 CSS,而不是动态的

javascript - 如何从另一个 php 页面调用 div 链接?

javascript - Express 服务器静态文件夹不提供文件

javascript - 互斥的单选按钮和相应的输入字段