gpt4 book ai didi

javascript - 根据 HTML/CSS 中的条件在一些表格元素周围绘制一个框

转载 作者:可可西里 更新时间:2023-11-01 15:02:06 25 4
gpt4 key购买 nike

我有一个 index.html 文件,如下所示:

span {
outline: 2px solid black;
}

.wrapped {
outline: 2px solid red;
}

.wrapped span {
border: 1px solid white;
background-color: white;
position: relative;
z-index: 1000;
}

<body>

<div class="container">
<table align="center">
<tr>
<th bgcolor="#f0a00c">Col1</th>
<th bgcolor="#f0a00c">Col2</th>
<th bgcolor="#f0a00c">Col3</th>
<th bgcolor="#f0a00c">Col4</th>
<th bgcolor="#f0a00c">Col5</th>
</tr>
<script>var dictionary = {}</script>
{% for b in obj %}
<tr>
<td>{{ b.col1 }}</td>
<td><span class="wrapped"><span>{{ b.col2 }}</span></span></td>
<td>{{ b.col3 }}</td>
<script> if (!dictionary["{{ b.col2 }}"]) {
dictionary["{{ b.col2 }}"] = [];
}
dictionary["{{ b.col2 }}"].push("{{ b.col3 }}");</script>
<td>{{ b.col4 }}</td>
<td>{{ b.col5 }}</td>
</tr>
{% endfor %}
<script>
delete dictionary[""];
console.log(dictionary)
for (var key in dictionary)
{

if (dictionary[key].length > 1) {
var name1 = []
var id = []
for (i in dictionary[key]) {

var reg1 = dictionary[key][i].split("(")[0];
name1.push(reg1);
var reg2 = dictionary[key][i].split("_")[1].match(/[A-Z0-9]*/i);
id.push(reg2[0]);
}
console.log(name1);
console.log(id);
}
}
</script>
</table>
</div> <!-- /container -->
</body>

我正在从 mysql 数据库中读取一个表,如下所示:

Col2   | Col3                   | Col4
1 | Name1(something_1234) | Some_date
1 | Name1(something_3456) | Some_date
2 | Name3(something_7890) | Some_date
2 | Name4(something_0988) | Some_date

上述代码段中dictionary的输出如下:

{'1': ['Name1(something_1234)', 'Name1(something_3456)'], '2': 'Name3(something_7890)', 'Name4(something_0988)']}

并且 name1id 分别从 col3 返回每个键的 name 部分和 id 部分,(即 [ 'Name1', 'Name1'] & ['1234', '3456']1).

现在,我想知道如何在显示的表格顶部添加 css(有点像条件 css,比如为所有相同的 col2 值在其周围添加一个框,然后检查它的值名称部分,如果它们是相同然后在它们周围添加一个框,否则在它们周围添加单独的框,对于 id 部分也类似),这样我得到以下输出:

output

更新:更新了我上面的代码。我能够在每个 Col2 元素周围画框。但我想检查 col2 单元格的值是否等于先前的值,然后将框围绕框一起绘制。以及如何仅围绕单元格中的部分文本绘制框,即 Col3 中的名称和 ID 部分?

最佳答案

Okay but I still don't understand how the box will be created with css/html. Can you show me an example?

是的,我用 js fiddle: https://jsfiddle.net/tq0u0876/ 做了一些与你的绘图类似的事情

现在轮到您使用 Blade 语法和 JS 生成 HTML。


HTML:

<table>
<tr>
<td><span class="border-top">1</span></td>
<td>
<span class="border-top">Name1</span>
<span>(something_</span>
<span class="border-top border-bottom">1234</span>
<span>)</span>
</td>
<td><span>some data</span></td>
</tr>
<tr>
<td><span class="border-bottom">1</span></td>
<td>
<span class="border-bottom">Name1</span>
<span>(something_</span>
<span class="border-top border-bottom">3456</span>
<span>)</span>
</td>
<td><span>some data</span></td>
</tr>
<tr>
<td><span class="border-top">2</span></td>
<td>
<span class="border-top border-bottom">Name2</span>
<span>(something_</span>
<span class="border-top border-bottom">7890</span>
<span>)</span>
</td>
<td><span>some data</span></td>
</tr>
<tr>
<td><span class="border-middle">2</span></td>
<td>
<span class="border-top border-bottom">Name3</span>
<span>(something_</span>
<span class="border-top border-bottom">0988</span>
<span>)</span>
</td>
<td><span>some data</span></td>
</tr>
<tr>
<td><span class="border-bottom">2</span></td>
<td>
<span class="border-top border-bottom">Name4</span>
<span>(something_</span>
<span class="border-top border-bottom">7890</span>
<span>)</span>
</td>
<td><span>some data</span></td>
</tr>
</table>

CSS:

.border-top { 
border-top: 2px solid;
border-left: 2px solid;
border-right: 2px solid;
}

.border-bottom {
border-bottom: 2px solid;
border-left: 2px solid;
border-right: 2px solid;
}

.border-middle {
border-left: 2px solid;
border-right: 2px solid;
}

table { border-collapse: collapse; }
span { display:inline-block; line-height:26px; margin-bottom:-6px; }
td:nth-child(1) span { border-color:red; min-width:20px; }
td:nth-child(2) span:nth-child(1) { border-color:green; min-width:60px; }
td:nth-child(2) span:nth-child(3) { border-color:blue; min-width:60px; }

关于javascript - 根据 HTML/CSS 中的条件在一些表格元素周围绘制一个框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45230661/

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