只有JavaScript和CSS的元素更改设备
have element change appreance with only javascript and CSS
试图通过在单击复选框时更改某些元素的背景来使我的网页更加动态。我正在尝试通过类更改和 CSS 工作表来做到这一点。我有以下内容,它踢出了一个错误,我的点击函数没有定义(在IE9中(。更重要的是,如果我只更改在CSS文件中具有不同类的对象类,网页会更新。如果这不起作用,还有什么更好的选择?
我的电子和功能
更新 按照许多人的建议,我对我的HTML和CSS文件进行了更新。我的网页仍然没有变化,但控制台声称我的函数没有定义从 onclick 事件调用,这有点奇怪,因为它是。此外,这种脚本类型是否属于 HTML,或者我应该将其拉出并放入单独的文件中。我想既然它正在创建元素,它就属于主 html。有没有一种更干净、更紧凑的方法来实现这一点,而不会让我的主屏幕 html 变大?
<tr class= 'tr.notchosen'><td><input type='checkbox' onclick='handleClick(this.id)'/></td></tr>
function handleClick(cb) {
var currentColumn = cb.parentNode
var currentRow = currentColumn.parentNode
if (currentRow.className === "chosen")
{
currentRow.className = "notchosen";
}
else
{
currentRow.className = "chosen";
}
}
我的 CSS 文件如下
tr.chosen
{
background-color:rgba(255,223,0,0.75);
}
tr.notchosen
{
background-color:rgba(255,223,0,0);
}
这里有几件事。首先,你的css选择器不太正确。事实上,我建议将类名设置为"选择"或"未选择",然后使用该类选择 tr 元素。
<tr class='notchosen'>
然后你可以从css定位它(这可能是最初的意图(
tr.notchosen
{
background-color:rgba(255,223,0,0);
}
此外,虽然我不建议使用内联 javascript,但使用您的示例,如果您想使用该元素而不是this.id
传递字符串,您应该传递this
。
onclick='handleClick(this)'
最后一部分是将你的javascript与类名更改同步
if (currentRow.className == "chosen")
{
currentRow.className = "notchosen";
}
else
{
currentRow.className = "chosen";
}
相关文章:
- 如何访问数组中的数组元素(JavaScript)
- 如何找到从中调用函数的元素(Javascript)
- 另一个元素JAVAscript中的元素位置
- 隐藏元素:Javascript属性和CSS样式之间的区别
- 如何比较数组中的元素(javascript)
- 使用一个函数来不同的元素 JavaScript
- 我需要从数组中获取一些元素 - JavaScript
- 元素 JavaScript 的读取宽度
- 识别数组的最后一个元素 - javascript
- 你如何使 Math.random 数组中的每一个第 9 个元素都是同一个元素?[JavaScript]
- 即时创建 Asp.Net 元素 Javascript
- 在提交表单上动态更改输入元素 javascript
- Kendo UI Grid 获取当前元素 javascript 的 ID
- 在我的 chrome 网上商店应用程序中禁用检查元素/JavaScript 控制台
- Canvas 元素 + Javascript 在 Chrome 和 Firefox 中工作,而不是在 Internet
- 对于在循环中不打印所有元素 - Javascript
- 选择元素 |Javascript vs Jquery.
- 无法删除 DOM 元素(JavaScript,CreateJS)
- 单击元素>JavaScript输出文档.activeElement VS.事件目标
- 当用户在文本框中输入数字时,将动态获得数组元素javascript或PHP