我要使用jQuery将html附加到div上,其中rowString
和inputString
都是先前定义的:
$("#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属性?
答案 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>`);