繁体   English   中英

将动态类名传递给JavaScript函数

[英]Passing dynamic class name to JavaScript function

我在foreach循环中有一个div,用于在视图中显示内容

<div class="someclass" data-id="get_@item.GetYear">
    <p> text1 </p>
    <p> text2 </p>
<span class="otherClass embedIcon"></span>
</div>

我正在尝试使用

$(".embedIcon")
    .click(function () {
        html2canvas($(this).data('data-id'),{
            onrendered: function (canvas) {
                var myImage = canvas.toDataURL("image/png", 1);
                window.open(myImage);
            }
        });
    });

单击应用了embedIcon类的图标以生成图像时,将获得迭代中所有div的图像。

单击div中的图标时,如何获取特定div的图像?

您的ID位于父div上,而不是embedIcon上,因此您可以使用2个选项

var id = $(this).parent().data('id')
html2canvas(id, {

要么

var id = $(this).closest('.someclass').data('id')
html2canvas(id, {

更新:

html2canvas接受元素作为第一个参数,而不是id,因此您只需要将父级传递给html2canvas调用,就不需要data-id。 您可以使用.parent().closest(".someclass")

$(".embedIcon")
    .click(function () { 
        html2canvas($(this).parent(),{
            onrendered: function (canvas) {
                var myImage = canvas.toDataURL("image/png", 1);
                window.open(myImage);
            }
        });
    });

如果您使用data(),则它应该像这样:

$(this).data('id');

如果使用attr(),它应该像这样:

$(this).attr('data-id');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM