gpt4 book ai didi

javascript - 向 Javascript/Jquery 添加多个属性

转载 作者:行者123 更新时间:2023-12-02 17:11:32 24 4
gpt4 key购买 nike

我目前正在制作一组表格,只需单击按钮即可扩展和收缩它们。然而,我在创建一个同时展开所有表格的按钮时遇到了问题。请查看我的代码。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head> <!--this first part is easy to implement-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".toggler").click(function(e){
e.preventDefault();
$('.vis'+$(this).attr('vistoggle')).toggle();
});
});
</script>
</head>
<body>
<a href="#" class="toggler" vistoggle="1">Expand all</a> <!--vistoggle needs to have values 1 and 2 in it-->
<table>
<tr>
<td>safeaef</td>
<td>asdfaef</td>
<td>asfead</td>
<td><a href="#" class="toggler" vistoggle="1">Expand</a></td>
</tr>
<tr class="vis1" style="display:none">
<td>asdfae</td>
<td>zxcvry</td>
<td>rteyertr</td>
<td></td>
</tr>
<tr class='vis1' style='display:none'>
<td>tsersg</td>
<td>sdgfs</td>
<td>wregssdf</td>
<td></td>
</tr>
<tr class="vis1" style="display:none">
<td>sdfgrs</td>
<td>sgdfgsr</td>
<td>Cewret</td>
<td></td>
</tr>
</table>
<table>
<tr>
<td>cfasdfas</td>
<td>1adfaed</td>
<td>asdfasdfea</td>
<td><a href="#" class="toggler" vistoggle="2">Expand</a></td>
</tr>
<tr class="vis2" style="display:none">
<td>asdfaefas</td>
<td>1asdf</td>
<td>Cisdfae</td>
<td>22fasdew</td>
</tr>
<tr class="vis2" style="display:none">
<td>asdfaef</td>
<td>1sefa0</td>
<td>Ciasdf 2</td>
<td></td>
</tr>
</table>
</body>
</html>

最佳答案

您可以尝试构建这样的选择器: $('tr[class^="vis"]')它将选择所有类属性以“vis”开头的元素。

但是从我看来,您希望第一行始终保持可见,因此我建议简单地将表头与其正文分开,如下所示:

<table>
<thead><tr>...</tr></thead>
<tbody id="table-one" class="vis">
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
<table>
<thead><tr>...</tr></thead>
<tbody id="table-two" class="vis">
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>

然后你可以使用一个简单的:

$('tbody.vis').toggle();

要切换所有表格,如果要切换其中一个表格,您可以使用:

$('tbody#tbody-one').toggle();

出于性能原因,这可能是更好的主意(ID 的查找速度比类快得多)。TBODY 的 ID 属性可以像您现在存储它一样存储(在按钮的属性中)。

fiddle 示例: http://jsfiddle.net/SL4UZ/3/

编辑

要使 HTML 有效,您应该使用数据属性或使用 javascript 绑定(bind)事件,而不是简单地在 button 标记内添加自定义属性。例如:

<button data-toggle-id="tbody-one">Toggle</button>

我更新了我的 fiddle 。

关于javascript - 向 Javascript/Jquery 添加多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24777524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com