gpt4 book ai didi

javascript - 在 if 语句和 for 循环中编辑 CSS 类

转载 作者:行者123 更新时间:2023-11-28 04:15:43 25 4
gpt4 key购买 nike

var first_left = ['Photo', 'Info', 'Question 1', 'Question 2', 'Question 3', 'Question 4', 'Question 5'];

var names = ['Abuela', 'Abuelo', 'Oma'];

function display() {
for (var y = 0; y < names.length; y++) {
var rc = document.getElementById('firstR');
var div1 = $("<div></div>");
var div2 = $("<div></div>");
div2.addClass(names[y]);
$(rc).append(div1);
$(rc).append(div2);
$(div1).css("border", "0px solid green");
$(div2).css("border", "5px solid black");
$(div1).css("height", "80px");
$(div1).css("margin-top", "3em");
$(div2).css("height", "380px");
$(div2).css("margin-top", "3em");
$(div2).css("margin-bottom", "12em");
var h = $("<h1></h1>");
$(h).html(names[y]);
$(h).css("font-size", "60px");
$(h).css("margin", "auto");
$(h).css("text-align", "center");
$(div1).append(h);

for (var z = 0; z < first_left.length; z++) {
var lc = document.getElementById('firstL');
var div = document.createElement('div');
div.className = first_left[z];
var p = document.createElement('p');
p.innerHTML = first_left[z];
div.appendChild(p);
lc.appendChild(div);
p.style.margin = 'auto';
p.style['font-size'] = '25px';
p.style['text-align'] = 'center';
div.style.border = '0px solid black';
div.style.height = '40px';
div.style.width = '120px';
div.style['margin-top'] = '3em';
if (z == 6) {
div.style['margin-bottom'] = '10em';
}
div.style['background-color'] = 'deepskyblue';
div.style['grid-row'] = [z + 1] + '/' + [z + 2];
div.style.transition = "transform .5s";
div.style['border-radius'] = '10px';
$(div).hover(function () {
$(this).css({
transform: 'scale(1.3)'
});
}, function () {
$(this).css({
transform: 'scale(1)'
})
});
if (y == 0 && z == 0) {
div.onclick = function() {
$("." + names[0]).css("backgroundImage", "url('abuelos/oma.jpg')");
$("." + names[0]).css("backgroundSize", "550px 500px");
}
};
if (y == 1 && z == 0) {
div.onclick = function() {
$(div2).css("backgroundImage", "url('abuelos/gma.jpg')");
$(div2).css("backgroundSize", "cover");
}
}
}
};
};

display();
.whole {
display: flex;
justify-content: space-between;
}

.left {
display: grid;
width: 100%;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 80px 80px 80px 80px 80px 80px 80px;
}

.left_column {
grid-column: 2/3;
}

.right_column {
width: 100%;
height: 560px;
margin-right: 3em;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home Page | Roctober92.net</title>
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="abuelos.css">
</head>
<body>
<main>
<div class="whole" id="one">
<div class="left">
<div class="left_column" id="firstL">
</div>
</div>
<div class="right_column" id="firstR">
</div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="abuelos.js"></script>
</main>
</body>
</html>

我的目标:

  1. 通过for循环为列表中的每个元素创建DIV
  2. 向每个名称 == list[y] 的 DIV 添加类
  3. 在不同的列表项中放置另一个 for 循环(z)
  4. 如果 y ==(数字)且 z ==(数字),则编辑独特类的 CSS

问题:只有当我将该元素称为 $(div2) 时它才有效,它编辑我附加的最后一个 div2,而不是特定的 div2。我宁愿它编辑我附加的第一个 div2 (使用名称[0]作为类名)。但它不认识它。在代码片段中,当您按第一个框旁边的“照片”时,框中应显示一张图片。

最佳答案

类名不能包含空格。将其用作类时,将空格替换为其他字符,例如下划线。

    div2.addClass(names[y].replace(/\s/g, ' ');


$("." + names[0].replace(/\s/g, ' ')).css("backgroundImage", "url('abuelos/oma.jpg')");

关于javascript - 在 if 语句和 for 循环中编辑 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45872564/

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