字符串变量和参数评估

时间:2017-10-17 12:59:27

标签: javascript

function addRow(){
    var row=`<input name="car[].name">
    <input type='text' name='car[].defaultPrice'></td>
    `;
    $("#carsTable tbody").append(row);  
}

如何传递传递给此函数的连接值?

如果我通过i=0

我想得到

var row=`<input name="car[0].name"><input type='text' name='car[0].defaultPrice'></td>`;

3 个答案:

答案 0 :(得分:3)

var row=`<input name="car[${i}].name">
<input type='text' name='car[${i}].defaultPrice'></td>
`;

假设您使用的是ES6,则可以使用${i}来使用反引号之间的变量值。

答案 1 :(得分:3)

利用字符串插值:

function addRow(i) {
    var row=`
        <td>
            <input name="car[${i}].name">
            <input type='text' name='car[${i}].defaultPrice'>
        </td>`;
    $("#carsTable tbody").append(row);  
}

常规字符串:

function addRow(i) {
    var row="<td>" +
                "<input name='car[" + i + "].name'>" +
                "<input type='text' name='car[" + i + "].defaultPrice'>" +
            "</td>";
    $("#carsTable tbody").append(row);  
}

但是,如果您希望name属性评估为car[i].defaultPricename的实际内容,则需要执行以下操作:

var car = [
    { name: 'Test', defaultPrice: 20000 },
    { name: 'Test2', defaultPrice: 25000 }
];

function addRow(i) {
    var row=`
        <td>
            <input name="${car[i].name}">
            <input type='text' name='${car[i].defaultPrice}'>
        </td>`;
    $("#carsTable tbody").append(row);  
}

然后调用函数:

addRow(0);
addRow(1);

答案 2 :(得分:1)

将所需的数字作为参数传递给函数:

function addRows(number) {

    var row = '' +
        '<td>' +
            '<input name="car[' + number + '].name">' +
            '<input type='text' name="car[' + number + '].defaultPrice">' +
        '</td>';

    $("#carsTable tbody").append(row);

}