0

我有一个分配给名为 status_button 的锚标记的类。单击与锚标记关联的图像时,它会运行附加功能。两个变量被传递给一个 php 脚本,一个 3 段数据响应被回显,以分号分隔。我已设置警报以确保从 php 返回正确的数据。

我需要帮助的是如何使用回显响应更改锚标记标题值。在我尝试过的大约 20 个示例中,有 5 个示例。它们都不起作用,但我也没有错误。任何帮助将不胜感激。

$(".status_button").on('click', function () {
    var element = $(this);
    var I = element.attr("id");
    var id = $("#id" + I).val();
    var sname = $(this).attr("title");
    $.post("openclose.php", {
        id: id,
        sname: sname
    },      
    function (data) {
        var response = (data).split(";", 3);
        alert(response[0]);
        alert(response[1]);
        alert(response[2]);

        $("#messageA" + I).innerhtml = (response[0]);
        $("#messageA" + I).hide();
        $("#messageA" + I).fadeIn(1500);
        $("#messageB" + I).html(response[1]);
        $("#messageB" + I).hide();
        $("#messageB" + I).fadeIn(1500);

        ***$(this).attr("title",(response[2]));
        ***$(I).attr("title", (response[2]));
        ***$("#id" + I).attr("title" , (response[2]));
        ***document.getElementById(I).title = (response[2]);
        ***document.getElementById("#id" +I).setAttribute("title",(response[2]));
    });
    return false;
});
4

2 回答 2

0

这将起作用:

$("#1").attr("title", (response[2]));

您的尝试:

    ***$(this).attr("title",(response[2])); //this is no longer referring to the clicked element when inside the callback
    ***$(I).attr("title", (response[2])); //Missing # for ID
    ***$("#id" + I).attr("title" , (response[2])); //Not your element ID
    ***document.getElementById("#id" +I).setAttribute("title",(response[2])); //Not your ID
于 2013-10-25T18:40:18.833 回答
0

嗯....我不得不改变一些事情来让它按照我需要的方式工作。首先,我从我的锚标签中删除了标题并将其放在我的 div 标签中。然后,我将 php 文件的响应从 3 条数据减少到 2 条数据。

$(".status_button").on('click', function () {
    var element = $(this);
    var I = element.attr("id");
    var id = $("#id" + I).val();
    var xname = $("#messageA" + I).attr('title');
    $.post("openclose.php", {
        id: id,
        xname: xname
    },      
    function (data) {
    var response = (data).split(";", 2);
        $("#messageA" + I).attr('title', (response[0]));        
        $("#messageB" + I).html(response[1]);
        $("#messageB" + I).hide();
        $("#messageB" + I).fadeIn(1500);

    });
    return false;
});
于 2013-10-28T15:09:49.687 回答