piwik从asp动态生成下载按钮后面捕获值

时间:2016-01-19 14:55:03

标签: javascript c# jquery asp.net matomo

网站是在asp.net中开发的,让人们选择下载图片。 该网站将它们分组,然后人们可以按照图片推送下载按钮。

由于我们永远不知道最终将下载多少张图片,因此该按钮是动态生成的。

我不允许仅在piwik部分更改服务器上的asp.net代码...

问题是id也是动态生成的.. 我试过这个:

    $("h2").on("click", "a.button button-dl", function(){
    alert($(this).text());
});

但没有结果,在这种情况下,我想检索" 276173"在变量中。
我希望有人可以帮助我,谢谢你的阅读 盖

<table class="checkout-basket" cellspacing="0" rules="all" border="1" id="ctl00_ctl00_cphContent_cphContent_gvBasketitem" style="border-collapse:collapse;">
    <tr>
        <th scope="col">&nbsp;</th><th scope="col">&nbsp;</th><th scope="col">Asset</th><th scope="col">&nbsp;</th>
    </tr><tr>
        <td style="width:30px;">
                                    <input id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_CbFlag" type="checkbox" name="ctl00$ctl00$cphContent$cphContent$gvBasketitem$ctl02$CbFlag" />
                                </td><td style="width:80px;">
                                    <a onclick="return confirm(&#39;Bent u zeker dat u deze asset wil verwijderen?&#39;);" id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_lbDelete" class="button" href="javascript:__doPostBack(&#39;ctl00$ctl00$cphContent$cphContent$gvBasketitem$ctl02$lbDelete&#39;,&#39;&#39;)">verwijder</a>
                                </td><td style="width:100px;">
                                                <img id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_Image1" src="../../cache/images/thumb/3AF267A169AAED70770F0EEE7E74FBB61A526EBB_156.jpg" style="width:80px;border-width:0px;" />
                                            </td>
                                            <td>
                                                <h2>
                                                        <a href='/nl-BE/asset/276173/'>
                                                            276173
                                                        </a>
                                                    </h2>
                                                  <h2>
                                                        <a href='/nl-BE/asset/276173/'>
                                                            20151109_113939_0040
                                                        </a>
                                                    </h2>

                                                <a class="button button-dl" href="javascript:__doPostBack(&#39;ctl00$ctl00$cphContent$cphContent$gvBasketitem$ctl02$ctl00&#39;,&#39;&#39;)" style="margin-top: 4px;"><img style="position: relative; top: 4px; right: 5px" src="/images/picto/download.png" />Download</a>
                                </td><td>
                                    <div id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_pnl">

                                        <input type="hidden" name="ctl00$ctl00$cphContent$cphContent$gvBasketitem$ctl02$hfAsset" id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_hfAsset" value="276173" />
                                        <span id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_rblPrint" class="rbl"><input id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_rblPrint_0" type="radio" name="ctl00$ctl00$cphContent$cphContent$gvBasketitem$ctl02$rblPrint" value="False" checked="checked" /><label for="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_rblPrint_0">Download</label><br /><input id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_rblPrint_1" type="radio" name="ctl00$ctl00$cphContent$cphContent$gvBasketitem$ctl02$rblPrint" value="True" /><label for="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_rblPrint_1">Print</label></span>
                                        <div class="printFormat" style="display: none; padding: 3px 0 3px 20px;">
                                            <select name="ctl00$ctl00$cphContent$cphContent$gvBasketitem$ctl02$ddlPrint" id="ctl00_ctl00_cphContent_cphContent_gvBasketitem_ctl02_ddlPrint">
                <option selected="selected" value="">--</option>
                <option value="9cmx13cm">9cmx13cm</option>
                <option value="10cmx15cm">10cmx15cm</option>
            </select>
                                        </div>

        </div>
                                </td>
    </tr><tr>

由于下面的答案,我最终找到了解决方案。 这就是我用过的东西

    var newstr = "1";
var addressValue = "1";
 $(".button.button-dl").click(function () {
      var addressValue = $(this).attr('href');
      console.log("tweede ",addressValue );
      var re = /'(.*?)'/;
      var re2 = /\$/gi;
    var m = addressValue.match(re);

if (m != null)
    idVal = (m[0].replace(re, '$1'));
    console.log("idVal ",idVal);
     var newstr = idVal.replace(/\$/gi, "_").slice(0,-6)+"_hfAsset";    
    console.log("newstr ",newstr);
    console.log(document.getElementById(newstr).value);
    });

1 个答案:

答案 0 :(得分:0)

您遇到了层次结构问题:

首先,CSS问题:"a.button button-dl"应为"a.button.button-dl"(两个类都在锚标记上)。

其次,该锚标记未包含在h2中,因此您的事件永远不会触发。最多,您可以使用td代码。

所以你的JS可能看起来像:

$("td").on("click", "a.button.button-dl", function () {
    alert($(this).text());
});