3 回答

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
所以問題是傳遞給 JsBarcode 方法的第一個(gè)參數(shù)是一個(gè)元素。您需要傳遞 jquery id 的字符串。如果您查看他們的文檔,它有以下內(nèi)容:
JsBarcode("#barcode", "1234", {
format: "pharmacode",
lineColor: "#0aa",
width: 4,
height: 40,
displayValue: false
});
注意第一個(gè)參數(shù)是“#barcode”而不是實(shí)際元素。在您的情況下,看起來您正在傳遞的元素不是 JsBarcode 所期望的。我看到了你的問題,我能夠讓它與以下一起工作:
<svg name="barcode"
jsbarcode-value="123456"
/>
<svg name="barcode"
jsbarcode-value="654321"
/>
<script>
var elements = document.getElementsByName("barcode");
for(var i = 0; i < elements.length; i++) {
var id = elements[i].name + "i";
elements[i].id = id;
var value = elements[i].getAttribute("jsbarcode-value");
JsBarcode("#" + id, value, {
format: "code39",
lineColor: "#0aa",
width: 4,
height: 40,
displayValue: false
});
}
</script>
總之,我將頁面上的所有元素都更改為名稱=“條形碼”而不是 id。然后在 for 循環(huán)中使用 name 和 incrementor 設(shè)置 id,用于將唯一 id 傳遞給 JsBarcode 并從屬性中獲取值。

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
在你的 for 循環(huán)中有一個(gè)錯(cuò)誤
您將作為數(shù)組的元素作為第一個(gè)屬性傳入 JsBarcode
像那樣正確
var element = document.querySelectorAll("#barcode");
[].forEach.call(element, function(elem){
JsBarcode(elem, {
format: "code39",
lineColor: "#0aa",
width: 4,
height: 40,
displayValue: false
});
})

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
html 頁面上不能有多個(gè)具有相同值的 id。針對(duì)您的情況的一種解決方案是使用類更改 id,然后使用選擇器使用該類。
將 id="barcode" 更改為 class="barcode",然后
document.querySelectorAll(".barcode");
添加回答
舉報(bào)