将html属性添加到字符串

时间:2019-06-10 16:28:49

标签: javascript jquery html

我要使用jQuery将html附加到div上,其中rowStringinputString都是先前定义的:

$("#filterContainer").append(
            rowString +
            `<label class='filterLabel' for=${filter}>${filter}</label>` +
            "<i class='fas fa-minus-circle removeFilter float-right'></i>" +
            inputString +
            "</div>"
        );

rowString看起来像这样:

let rowString = "<input id='autocomplete' type='search' class='form-control' name='filters[location]' >"

我正在尝试为此注入一个价值。我已经尝试过rowString.val('myvalue'),但是失败了,Uncaught TypeError: string.val is not a function

如何为字符串添加value之类的html属性?

2 个答案:

答案 0 :(得分:4)

$(rowString).attr('value', 'myvalue').prop('outerHTML')

您可以解析它,设置值,然后获取externalHTML来获取HTML。

let rowString = "<input id='autocomplete' type='search' class='form-control' name='filters[location]' >";

console.log(
  $(rowString).attr('value', 'myvalue').prop('outerHTML')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

答案 1 :(得分:0)

$(rowString).val('myvalue')

然后,将您的附加内容更改为此:

$("#filterContainer").append(`${rowString}<label class='filterLabel' for=${filter}>${filter}</label><i class='fas fa-minus-circle removeFilter float-right'></i>${inputString}</div>`);