即时创建/删除元素

时间:2013-09-10 20:40:57

标签: javascript jquery

我有这段代码:

if (data.response) {
    $("#product-create-step-2 input:last").after('<div class="variation_checkbox"><input type="checkbox" value="1" name="has_variations" id="has_variations" /> Posee variaciones?</div>');
} else {
    console.log("false");
    $("#product-create-step-2 input:last").remove('#variation_checkbox');
}

发生的事情是:

  1. data.response为真时,它会多次创建元素,我只需要创建一次但不知道如何
  2. data.response为false元素之前,创建永远不会被删除,并且不知道为什么
  3. 任何帮助?

    更新

    我按如下方式创建元素:

    <div id="has_variation" style="display:none">
        <input type="checkbox" value="1" name="has_variations" id="has_variations" /> Has variations?
    </div>
    

    然后将我的代码更改为:

    $("div.has_variation").toggle(data.response);
    

    如果data.response为真,则该元素应该显示,如果data.response为假,则该元素应该隐藏?我错过了什么?

2 个答案:

答案 0 :(得分:2)

variation_checkbox是一个类..“#”用于id&amp; dot用于课程。

$("#product-create-step-2").find('.variation_checkbox').remove();

js Fiddle Demo

答案 1 :(得分:1)

输入后,您的div正在附加。您的选择器$("#product-create-step-2 input:last").remove('#variation_checkbox');正在内部输入。

请改为尝试:

$("#product-create-step-2 input:last").next('.variation_checkbox').remove();

修改已将#variation_checkbox更改为.variation_checkbox