在页面加载

时间:2016-05-07 23:41:15

标签: javascript jquery

我正在尝试在加载后在两个单独的表上运行javascript / jQuery函数,我尝试在表HTML中添加事件hadler。

onload="filterItems();"

我也尝试过文档就绪功能我真的很困惑。

$(document).ready(filterItems);

唯一可行的方法是单击事件处理程序,这对我的情况并不理想。

$('.filter-gift').click(filterItems);

我只想在页面加载时为每个表运行一次函数,请查看下面的jsfiddle https://jsfiddle.net/51Le6o06/41/,因为你可以看到有两个表利用了这个函数。

我希望他们每个人都在页面加载时填充过滤器,但文档就绪函数由于某种原因不能正常工作 - 我想也许这与两个表有关。

继承人使用javascript和jQuery:

$('.filter-gift').click(filterItems);   

function filterItems(e) {
    var items = [];
    var table = '';
    tableId = $(this).parent().parent().attr('tag')

      var listItems = "";
        listItems += "<option value='0'> -Select- </option>";
        $('div[tag="' + tableId + '"] table.internalActivities .information').each(function (i) {
            var itm = $(this)[0].innerText;
            if ($.inArray(itm, items) == -1) {
                items.push($(this)[0].innerText);
                listItems += "<option value='" + i + "'>" + $(this)[0].innerText + "</option>";
            }
        });

    $('div[tag="' + tableId+ '"] .filter-gift').html(listItems);

    $('.filter-gift').change(function () {
        var tableIdC = $(this).parent().parent().attr('tag');

        var text = $('div[tag="' + tableIdC + '"] select option:selected')[0].text.replace(/(\r\n|\n|\r| |)/gm, "");;
            $('div[tag="' + tableIdC + '"] .product-information-row').each(function (i) {
                if ($(this).text().replace(/(\r\n|\n|\r| |)/gm, "") == text) {
                    $(this).show();
                    $(this).prev().show();
                    $(this).next().show();
                }
                else {
                    $(this).hide();
                    $(this).prev().hide();
                    $(this).next().hide();
                }
            });           
        });    
}

任何人都可以告诉我如何在每个表上运行该函数,而无需在页面加载时与其进行交互。谢谢 - 我已经遗漏了其他脚本,以便更清楚。

由于

2 个答案:

答案 0 :(得分:4)

$(document).ready(function() {
    $('.filter-gift').each(filterItems);
});

答案 1 :(得分:0)

如果没有附加进一步的要求,首先这是一项相当容易的任务。

//jQuery document ready function to get Page Load
jQuery(document).ready(function(){ //Use a directly nested function
  jQuery('.filter-gift').each(filterItems);
});

不幸的是,没有“过滤礼品”这一类的元素。所以我无法检查&#39; .parent()&#39;引用。