我有一个条形码,想要多次显示出来。
当我从svg
添加标签javascript
时,在生成条形码之后,它们就不会出现了。
$scope.generatePrintBarcodePage = function (sampleCode, number) {
$scope.barCodePrint = [];
var i;
for (i = 1; i <= number; i++) {
JsBarcode("#barcode" + i, sampleCode, {
height: 40,
displayValue: true
});
}
}
$scope.showBarcode = function (sampleCode, number) {
for (i = 1; i <= number; i++) {
const node = document.createElement("svg");
node.setAttribute("id", "barcode" + i);
document.getElementById("printPageBarcode").appendChild(node);
JsBarcode("#barcode" + i, sampleCode.SampleCode, {
}
}
然后就不会显示条形码。
但是如果我预先在html文件上创建标签svg
,它们就会显示出来,但是如果我创建它,我就无法控制我要打印多少条形码。
<div id="printPageBarcode" style=" height: 500px;">
<svg id="barcode1"></svg> <br />
<svg id="barcode2"></svg> <br />
<svg id="barcode3"></svg> <br />
<svg id="barcode4"></svg> <br />
<svg id="barcode5"></svg> <br />
</div>
如何多次添加相同的条形码?
发布于 2022-07-17 17:37:41
SVG元素不能以与createElement元素相同的方式使用createElement动态创建。如果希望生成svg,请使用createElementNS
函数。
function showBarcode (sampleCode, number) {
for (let i = 1; i <= number; i++) {
let node = document.createElementNS("http://www.w3.org/2000/svg", "svg");
node.setAttribute("id", "barcode" + i);
document.getElementById("printPageBarcode").appendChild(node);
JsBarcode("#barcode" + i, sampleCode, {
height: 40,
displayValue: true
});
}
}
showBarcode("test", 5);
<script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.11.0/dist/JsBarcode.all.min.js"></script>
<div id="printPageBarcode">
</div>
https://stackoverflow.com/questions/73009513
复制相似问题