使用jQuery load方法来获取注入的元素

时间:2014-04-03 09:11:20

标签: jquery load

我正在使用jQuery加载方法从“产品详细信息”页面获取包含大小选项的选择框,然后返回到“产品列表”页面。这是非常标准的,像这样:

<select class="validation">
<option value="" selected="selected">-- Please Choose an Option --</option>
<option value="Small">Small</option>
<option value="Medium">Medium</option>
<option value="Large">Large</option>
<option value="X-Large">X-Large</option>
</select>

我注入它然后循环它,使用这些大小生成一个大小过滤器 - 所有这些工作正常。这段代码的第一部分是我抓住它的地方。

    $(prodItems).each(function (i) {

    var prodLI = $(this),
        getSelect = $(prodLI).find("a").attr("href") + " div.productOptionViewSelect select",
        currentProd = $(prodLI).find("div.ProductImage").attr("data-product");

    $(prodLI).append($("<div id='sizes' style='display: none'>").load(getSelect, function () {
        appendSizes(prodLI, currentProd);
        appendCount++;

        // Sizes built, so load filters
        if (count == appendCount) {
            // call filter function
        }
    }));
});

然而,我已经意识到产品页面上还有一些JavaScript(我无法访问),这些JavaScript可以解决其中哪些库存,然后重新生成一个新的选择标记,它会立即注入这一个,将原始标签设置为display:none。

我的问题:如何抓住这个新的注入选择标签。我确实整个解决方案都在工作,禁止这个......我担心我可能需要一些专业建议,或者肩膀哭泣。我不认为这是一个简单的问题吗? : - /

1 个答案:

答案 0 :(得分:0)

所以有些事情是在你创建的元素之前添加一个元素?如果您有权访问自己创建的文件,则可以使用.prev()

https://api.jquery.com/prev/

在你的情况下,它将是:

$('.validation').prev()

<强>更新

另一种选择:http://www.w3schools.com/jquery/event_delegate.asp