首页 > 解决方案 > 将选择器传递给 javascript 函数

问题描述

我有一个 js 函数,可以将一些代码插入到现有的 html 中。HTML

<div id="filteredProducts">
    <!--load by js-->
</div>

<div id="filteredplaces">
    <!--load by js-->
</div>

<div class="container">
    <div class="bucket">
    </div>
</div>

js代码

var myfun = function (data) {
    if (data.form_is_valid) {
        $("#filtered1").html(data.html);
        toggleLight();
    } 

我需要进一步抽象它以获取另一个参数,以便我可以将 data.html 插入任何选择器。所以“#filtered1”将成为传递给这个函数的参数。例如(不确定它是否有效)

var myfun = function (data, sel) {
    if (data.form_is_valid) {
        $(sel).html(data.html);
        toggleLight();
    }

理想情况下,我想做以下事情:

myfun(data,".container .bucket")

或者

myfun(data,"#filteredplaces")

标签: javascriptfunction

解决方案


const myFunction = (data, selector) => {
    if (data.isFormValid) {
        $(selector).html(data.html);
        // toggleLight();
    }
};
myFunction({ isFormValid: true, html: '<h1>Hello</h1>'}, '.class1,.class2')

这似乎按您的预期工作。我刚刚测试了最后一行,它可以满足您的需求。

也许,当您针对多个目标时,您错过了在类之间需要一个逗号


推荐阅读