获取单击的元素父节点的数组编号
Get the array number of a clicked elements parent node
我需要能够点击按钮并返回其父数组编号,这样我就可以只将样式应用于具有相同类名的众多div中的一个,如果可能的话,我希望用普通javascript来实现这一点。
<div class="contentBox">
<button onclick="expand()" class="contentBoxButton"> + </button>
<title>Lorem Ipsum Here</title>
<p>
Lorem Ipsum HereLorem Ipsum HereLorem Ipsum HereLorem Ipsum HereLorem Ipsum
</p>
</div>
<script>
function expand(){
var button = document.getElementsByClassName('contentBoxButton');
var parent = button.parentNode;
parent.style.height = '200px';
}
</script>
感谢Felix Kling对.parentNode
的评论
你没有得到一个单独的元素的原因是,你一开始是通过它的类访问点击的按钮var button = document.getElementsByClassName('contentBoxButton');
..,这确实会为您提供该类的所有元素的节点列表
因此,在那之后的一行中对parentNode的调用要么不起作用,要么结果是所有父节点的另一个列表。。
这就是你需要让它工作:
小提琴:http://jsfiddle.net/13pkrabq/3/
HTML
<div class="contentBox">
<button onclick="expand(this)"> + </button>
<p>
Text Text Text
</p>
</div>
JS
function expand(btn) {
btn.parentNode.style.height = "200px";
}
CSS
.contentBox {
background-color:#777777;
}
(我添加了CSS以使contextBox
可见)
如果它是您想要扩展的div,请考虑将监听器放在上面,这样您就不必去寻找了。使用this传递对div的引用,然后使用按钮值打开或关闭div。
同时在"+"answers"-"之间切换按钮的值,并使用类应用CSS:
<div onclick="expand(this)">
<input type="button" value="+" class="expandContentButton">
<span class="title">Foo bar</span>
<p class="contentPara">here is the content</p>
</div>
<script>
function expand(el) {
var cb = el.querySelectorAll('.expandContentButton')[0];
if (cb == event.target || cb == event.srcElement) {
el.className = cb.value == '+' ? 'open' : 'closed';
cb.value = cb.value == '+' ? '-' : '+';
}
}
</script>
以及一些CSS:
<style type="text/css">
.title {
font-weight: bold;
font-size: 150%;
}
.open {}
.closed {
height: 30px;
overflow: hidden;
}
.expandContentButton {
text-align: middle;
width: 3em;
}
</style>
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- Jquery 读取编号组中选择下拉列表的数组
- 正在获取下一个可用编号,跳过数组中的项目
- JS 数组环路编号为 1 关闭
- 如何在 PHP 中制作最后一个数组编号 id +1 的 JavaScript 数组
- 使用每个项目在KnockoutJS中创建编号列表's在可观测数组中的位置
- 在html5画布上显示数组的编号
- 获取单击的元素父节点的数组编号
- 对具有前导编号s的字符串字段上的JScript数组进行排序
- 如何在javascript中获取带有名称值的数组编号
- 分组数组内的编号
- 用数组的元素填充提示符,并给它们编号
- 如何获取数组元素编号
- 在动态添加和删除字段后重新编号表单输入数组
- 数组中不同属性值对象的 Javascript 编号
- 格式化特定模式的数组编号
- 向数组添加新的唯一编号