如何从动态创建的按钮中获取属性?

时间:2017-06-23 15:11:52

标签: javascript jquery mysql node.js backend

所以,我正在构建某种电子商务网站,我需要使用nodejs和ajax从mysql数据库导入一堆产品。

到目前为止,我已经能够实现这一目标,并且在每个产品下方创建某些按钮,这些按钮将导致/产品页面显示该确切产品的其他信息。

由于这些按钮不是动态的,我需要添加一个属性,该属性将包含产品ID,我将使用该属性向服务器发送POST请求,以便获取有关该特定产品的信息。

虽然我能够将这个属性添加到按钮本身,但我不知道如何获得它们的价值。

这是我将属性添加到按钮的方式。

$(function () {
        $.ajax({
            type: 'POST',
            url: '/getPacotes',
            success: function (data) {
                for (var i = 0; i < data.length; i++) {

                    var idPacote = data[i].idPacote;
                    var nomePacote = data[i].Nome_Pacote;
                    var precoPacote = data[i].Preco_Pacote;
                    var fornecedorPacote = data[i].Fornecedor_Pacote;
                    var foto = "https://webitcloud.net/PW/1617/RMR/Views/images/Pacotes/" + data[i].Foto;

                    var pacoteSet1 = "<div class='col-md-4 pacotes'>";
                    var pacoteSet2 = "<img src=" + foto + " alt='Mountain View' style='width:150px;height:150px;'><br><br><input id=btnPac" + i + "' type='button' name='comprar' value='Comprar Pacote'>";
                    var pacoteSet3 = "</div>";

                    $("#pacotes").append(pacoteSet1 + "<h1>" + nomePacote + "</h1>" + "<h2>" + fornecedorPacote + "</h2>" + "<h3>" + precoPacote + "euros/mes </h3>" + pacoteSet2 + pacoteSet3);
                    $(document).find("#btnPac" + i).attr({
                        "idPacote": idPacote
                    });
                }
            }
        });
    });

这就是我试图获取其属性的方式

$("button").each(function () {
        console.log(this.idPacote);
        $.post("http://localhost:3000/pacote?id=" + this.idPacote);
    });

但它似乎不起作用 idPacote返回undefined,我不明白为什么,因为我只是给按钮一个“id”并用“id”本身替换idPacote,它将返回按钮ID

对不起,如果这个问题听起来很愚蠢。我对这些事情不是很有经验。

1 个答案:

答案 0 :(得分:0)

当您使用jQuery时,我建议您使用HTML5数据属性,以便为HTML元素设置指定的属性:

<button data-id="1"></button>

您可以使用jQuery设置和访问它:

$('button').data('id', value); //set data-id

$('button').data('id'); //Read data-id

进一步改变

<input id=btnPac" + i + "' type='button' name='comprar' value='Comprar Pacote'>

<button name='comprar'>Comprar Pacote</button>

从$('button')

获取元素