gpt4 book ai didi

jquery - Bootstrap CSS 不适用于使用 JQuery 动态添加的新 HTML

转载 作者:太空狗 更新时间:2023-10-29 13:52:16 25 4
gpt4 key购买 nike

我正在使用 Bootstrap 来设计我的网页样式,它几乎可以完美运行,但是当我尝试使用 $.append() 向页面添加新的 html 时。那么新的 html 不会获得默认的 Bootstrap 样式。这是我的相关 html:

 <div id="lines">
<div id="line1">
<input type="tel" class="Numbers" id="Number1" />
<input type="tel" class="Numbers" id="Number2" />
<input type="tel" class="Numbers" id="Number3" />
<input type="tel" class="Numbers" id="Number4" />
<input type="tel" class="Numbers" id="Number5" />
<input type="tel" class="Numbers" id="Number6" />
<input type="tel" class="Numbers" id="StrongNumber1" style="background-color:cyan"/>
<button class="btn btn-primary addbtns" id="btnAdd1" onclick="addLine()">+</button>
<button class="btn btn-primary addbtns" id="btnMinus1" disabled="disabled">-</button>
</div>
</div>

这是我的 JQuery:

function addLine() {
$('#btnAdd' + lineCounter).attr('disabled', 'true');
$('#btnMinus' + lineCounter).attr('disabled', 'true');

++lineCounter;

var line = "<div id='line" + lineCounter + "'>" +
"<input type='tel' class='Numbers' id='Number" + lineCounter + "' />" +
"<input type='tel' class='Numbers' id='Number" + lineCounter + "' />" +
"<input type='tel' class='Numbers' id='Number" + lineCounter + "' />" +
"<input type='tel' class='Numbers' id='Number" + lineCounter + "' />" +
"<input type='tel' class='Numbers' id='Number" + lineCounter + "' />" +
"<input type='tel' class='Numbers' id='Number" + lineCounter + "' />" +
"<input type='tel' class='Numbers StrongNumber' id='StrongNumber" + lineCounter + "' style='background-color:cyan' />" +
"<button class='btn btn-primary addbtns' id='btnAdd" + lineCounter + "' onclick='addLine()'>+</button>" +
"<button class='btn btn-primary addbtns' id='btnMinus" + lineCounter + "' onclick='removeLine()'>-</button>" +
"</div>";
$('#lines').append(line).fadeIn('slow');
}

编辑:好吧,我试着用尽可能简单的页面和一个简单的附加来重现这个错误。也像@Sherbrow 建议的那样将 JS ' 切换为 ",但它仍然无法正常工作..

这是我的 HTML:

<html xmlns="http://www.w3.org/1999/xhtml">
<link href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" rel="stylesheet">
<link href="test.css" rel="stylesheet"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="test.js"></script>
<head></head>
<body dir="rtl">
<div id="lines">
<div id="line1">
<input type="tel" class="Numbers" id="Number1" />
<input type="tel" class="Numbers" id="Number2" />
<input type="tel" class="Numbers" id="Number3" />
<input type="tel" class="Numbers" id="Number4" />
<input type="tel" class="Numbers" id="Number5" />
<input type="tel" class="Numbers" id="Number6" />
<input type="tel" class="Numbers" id="StrongNumber1" style="background-color:cyan"/>
<button class="btn btn-primary addbtns" id="btnAdd1" onclick="addLine()">+</button>
<button class="btn btn-primary addbtns" id="btnMinus1" disabled="disabled">-</button>
</div>
</div>
</body>
</html>

我的 CSS:

body
{
background-color:#E46C0B;
text-align:center;
}
.Numbers
{
width: 16px;
}

我的 JavaScript:

var lineCounter=1;
function addLine() {
$('#btnAdd' + lineCounter).attr('disabled', 'true');
$('#btnMinus' + lineCounter).attr('disabled', 'true');

++lineCounter;

var line = '<div id="line' + lineCounter + '">' +
'<input type="tel" class="Numbers" id="Number' + lineCounter + '1" />' +
'<input type="tel" class="Numbers" id="Number' + lineCounter + '2" />' +
'<input type="tel" class="Numbers" id="Number' + lineCounter + '3" />' +
'<input type="tel" class="Numbers" id="Number' + lineCounter + '4" />' +
'<input type="tel" class="Numbers" id="Number' + lineCounter + '5" />' +
'<input type="tel" class="Numbers" id="Number' + lineCounter + '6" />' +
'<input type="tel" class="Numbers StrongNumber" id="StrongNumber"' + lineCounter + '" style="background-color:cyan" />' +
'<button class="btn btn-primary addbtns" id="btnAdd"' + lineCounter + '" onclick="addLine()">+</button>' +
'<button class="btn btn-primary addbtns" id="btnMinus"' + lineCounter + '" onclick="removeLine()">-</button>' +
'</div>';
$('#lines').append(line);
}

我做错了什么?

感谢您的回答:)

最佳答案

CSS 不应该应用于新创建的 DOM 元素。然而,这可能发生在 JavaScript 中。

无论是否真的解决了问题,您的代码中都应该更改一些内容:

  • ID 只能使用一次。类可以重用。请将您的 linelines ID 更改为类,以便您可以创建多个元素并在一个保护伞下对它们进行样式设置。
  • 不要担心 "或 '。只要 "s close "s 和 'close 's,JavaScript 都可以正常工作。
  • 我注意到您正在设计输入框的宽度。确保尚未指定 min-width

如果这些建议不起作用,请创建一个 JSFiddle这样我们就可以重现问题。

关于jquery - Bootstrap CSS 不适用于使用 JQuery 动态添加的新 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12734894/

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