簡體   English   中英

使用javascript構建html代碼時轉義特殊字符

[英]Escape special characters when building html code using javascript

嗨,我想使用javascript動態構建html代碼。 問題是,當我嘗試使用為表指定css類時,它給了我一個語法錯誤。 我想我需要在這里轉義特殊字符=和“”。 而且我嘗試了類似的方法,但是它也給出了非法語法的錯誤。

for (var i=0; i<array.length; i++)
{
    htmlstr = htmlstr+"<table class"+%3D+%22+"test"+%22+"><tr><th>A</th><td>"+array[i].a+"</td></tr><tr><th>B</th><td>"+array[i].b+"</td></tr><tr><th>C</th><td>"+array[i].c+"</td></tr></table>";
}

誰知道這樣做的正確語法是什么?

提前致謝!

htmlstr=htmlstr+'<table class="test"><tr><th>A</th><td>'
               +array[i].a+'</td></tr><tr><th>B</th><td>'
               +array[i].b+'</td></tr><tr><th>C</th><td>'
               +array[i].c+'</td></tr></table>';

例如,如果要將<input type="button" onClick="alert('Hello, World!');"></input>封裝在JavaScript字符串中,則不能一次運行,因為該代碼包含雙引號和單引號。您應該執行以下操作:

var htmlCode='<input type="button" onClick="alert('+"'Hello, World!'"+');"></input>';

您可以使用單引號或雙引號在javascript中定義字符串變量:

var str0='Hello, World!';
var str1="Hello, World!";

他們是絕對平等的。

這是一個使用我在評論中提到的方法動態構建的示例。

的CSS

.tableCSS, th, td {
    border: 1px solid;
}
.tableCSS thead {
    font-weight: bold;
}

Java腳本

var array = [],
    codePointAt,
    length,
    i;

array.push({
    a: "A",
    b: "B",
    c: "C"
});

array.push({
    a: "a1",
    b: "b1",
    c: "c1"
});

array.push({
    a: "a2",
    b: "b2",
    c: "c3"
});

array.push({
    a: "a3",
    b: "b3",
    c: "c3"
});

function convertSpaces(text) {
    return text.replace(/ /g, "\u00a0");
}

for (i = 1, length = array.length; i < length; i += 1) {
    var object = array[0],
        table = document.createElement("table"),
        thead = document.createElement("thead"),
        tbody = document.createElement("tbody"),
        tr,
        td,
        pre,
        j;

    table.className = "tableCSS";
    table.appendChild(thead);
    table.appendChild(tbody);

    tr = thead.insertRow();
    for (j in object) {
        if (object.hasOwnProperty(j)) {
            td = document.createElement("th");
            td.appendChild(document.createTextNode(convertSpaces(object[j])));
            tr.appendChild(td);
        }
    }

    tr = tbody.insertRow();
    object = array[i];
    for (j in object) {
        if (object.hasOwnProperty(j)) {
            td = tr.insertCell(),
            td.appendChild(document.createTextNode(convertSpaces(object[j])));
        }
    }

    pre = document.createElement("pre");
    pre.appendChild(table);
    console.log(pre.innerHTML);
    document.body.appendChild(table);
}

jsfiddle上

以及innerHTML的輸出

<table class="tableCSS"><thead><tr><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>c1</td><td>b1</td><td>a1</td></tr></tbody></table>
<table class="tableCSS"><thead><tr><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>c3</td><td>b2</td><td>a2</td></tr></tbody></table>
<table class="tableCSS"><thead><tr><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>c3</td><td>b3</td><td>a3</td></tr></tbody></table> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM