jQuery将动态id值传递给函数

时间:2014-09-02 00:36:48

标签: jquery

我是JS / jQuery的新手。

我收到了这段代码:

<button id="value1" class="buttonkontakte" onclick="kontakte()">KLICK1</button>
<button id="value2" class="buttonkontakte" onclick="kontakte()">KLICK2</button>
<button id="value3" class="buttonkontakte" onclick="kontakte()">KLICK3</button>

jQuery的:

function kontakte(){
    var getthevalue = ???????????????;
    $.ajax({
        type: 'post',
        url: 'post.php',
        data: {wasmachen: "kontakte", value: getthevalue},
        success: function(msg) {
            $('#kontakte').html(msg);
        }
    });
}

现在,当我点击KLICK1时,我想将“value1”传递给var getthevalue。我怎么能这样做?

3 个答案:

答案 0 :(得分:6)

在html this中简单传递onclick以了解谁将该函数称为:

<button id="value1" class="buttonkontakte" onclick="kontakte(this)">KLICK1</button>
<button id="value2" class="buttonkontakte" onclick="kontakte(this)">KLICK2</button>
<button id="value3" class="buttonkontakte" onclick="kontakte(this)">KLICK3</button>

函数得到的值如下:

function kontakte(e){
    var getthevalue = $(e).attr('id');
    $.ajax({
        type: 'post',
        url: 'post.php',
        data: {wasmachen: "kontakte", value: getthevalue},
        success: function(msg) {
            $('#kontakte').html(msg);
        }
    });
}

答案 1 :(得分:2)

请摆脱那些丑陋的内联javascript事件处理程序

$('.buttonkontakte').click(function(){
  value=$(this).attr('id');
   $.ajax({
        type: 'post',
        url: 'post.php',
        data: {wasmachen: "kontakte", value: value},
        success: function(msg) {
            $('#kontakte').html(msg);
        }
    });
});

答案 2 :(得分:0)

这可以通过使用jQuery处理单击来完成:

$(document).ready(function() { // Start of the block of jQuery code

    // Define a function which needs a parameter
    function kontakte(getthevalue) {
        $.ajax({
            type: 'post',
            url: 'post.php',
            data: {wasmachen: "kontakte", value: getthevalue},
            success: function(msg) {
            $('#kontakte').html(msg);
        }
        });
    }

    // Handling the on click event via jQuery instead of HTML
    $("#value1").click(function() {
        // Call your function with a parameter now.
        kontakte("value1");

        // Or if you want the passed value to be the same as the id of your button
        var value = $(this).attr('id');
        kontakte(value);
    }

} // end jQuery

您的HTML将如下所示:

<button id="value1" class="buttonkontakte">KLICK1</button>
<button id="value2" class="buttonkontakte">KLICK2</button>
<button id="value3" class="buttonkontakte">KLICK3</button>

有了这个,你将处理jQuery中的所有内容,因为就我而言,当在jQuery块中声明函数时,你无法在 onclick 属性中调用函数。 (如果我错了,请纠正我)

我希望这有帮助!