将动态类名传递给JavaScript函数

时间:2016-12-09 05:38:07

标签: javascript jquery

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

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

我尝试使用

定位id属性
$(".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的图像?

2 个答案:

答案 0 :(得分:1)

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

WHERE

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

<强>更新

html2canvas接受元素作为第一个参数,而不是id,所以你只需要将父元素传递给你的html2canvas调用,你就不需要data-id。您可以使用var id = $(this).closest('.someclass').data('id') html2canvas(id, { .parent()

.closest(".someclass")

答案 1 :(得分:0)

如果您使用的数据()应该是:

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

如果使用attr()而不是它应该像:

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