0

首先,我感谢所有成员都在努力互相帮助。

我想在我的 javascript 函数中按 id 显示 div 内容。我有功能,它适用于一个 div 并且它的内容。但是现在我从 DB 中获得了多条记录,所以为了使 div 独一无二,我已经完成了以下操作。其中 $i=$i+1 在 while 循环中

<div id="<?php echo 'fvd'.$i; ?>" class="fake-checkbox star-checkbox"><a id="<?php echo 'tvd'.$i; ?>" onclick="respuestas('<?php echo $user_id1;?>'); return false;" href="#">Add to favourites</a></div>

所以在这里我为下一条记录生成 fvd1、tvd1、fvd2、tv2 等等下面的函数处理用户 ID 并通过 Ajax 调用获得响应并将标题从添加到收藏夹更改为添加到收藏夹并添加类名“已检查”,这会改变文本颜色。

function respuestas(str) {
    var popID = str;

    var gett = document.getElementById('tvd1').innerHTML;

    if (gett == 'Add to favourites') {
        $.post('personals/addfavourite.php', {
            ref: popID
        }, function (data) {

            if (data == 'no') {
                alert('Sorry! something gone wrong!')
            } else if (data == 'yes') {

                var d = document.getElementById("fvd1");
                d.className = d.className + " checked";
                document.getElementById('tvd1').innerHTML = 'Added to favourites';
            }

        });
    }
}

现在如何在这个函数中解析 fvd2、tvd2 等。任何帮助将不胜感激..谢谢

4

2 回答 2

0

如果将您添加$i到函数参数中,则可以动态获取每个分组

onclick="respuestas('<?php echo $user_id1;?>',<?php echo $i;?>); return false;"

function respuestas(str,num) {
    ...
    var gett = document.getElementById('tvd'+num).innerHTML;
    ...
    var d = document.getElementById("fvd"+num);
    ...
    document.getElementById('tvd'+num).innerHTML = 'Added to favourites';
    ...
}
于 2013-07-04T02:55:23.127 回答
0

你可以做

onclick="respuestas(this, '<?php echo $user_id1;?>');

第一个参数是<a>你可以做的

function respuestas(elm, str) {

    elm.getAttribute("id");

}

或者。(不确定 DOM 方法名称)

顺便说一句,你为什么不直接$i打电话呢?或者,也许我没有得到正确的问题?如果没有,请解释。

如果您需要访问元素,那么您已经拥有<a>inelm<div>is in elm.parentElement

检查 HTML DOM 方法:https ://developer.mozilla.org/en-US/docs/Web/API/Node.parentElement

于 2013-07-04T02:47:43.410 回答