1

编辑2:问题解决了。jquery 插件创建了一个 div。我叫错了树。感谢您的所有快速答复!stackoverflow 的长期读者,但我第一次发布问题!

编辑:所以我要更改 id 的原因是更改评级栏的评级(我使用 jrating jquery 插件)。该插件使用 id 开头的数字来设置初始评级。现在我想在加载新播放器时使用 ajax,并且该新播放器有我想要更新的新评级。这是足够的上下文吗?

我在这里不知所措。我想更改id选定的div,但它不起作用!我似乎确实改变了,div id因为当我给它我刚刚改变的时,它document.title是正确的。但是,当我打开网页的源代码时,并没有改变......ididdivid

function changePlayer() {
    xmlhttp = createXHR();
    xmlhttp.onreadystatechange = function () {
        document.title = "onreadystatechange";
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.title = "4 and 200 is ok!";
            var xmlDocument = xmlhttp.responseXML;
            var playerId = xmlDocument.getElementsByTagName("id")[0].childNodes[0].nodeValue;
            var playerName = xmlDocument.getElementsByTagName("firstName")[0].childNodes[0].nodeValue;
            var playerlastName = xmlDocument.getElementsByTagName("lastName")[0].childNodes[0].nodeValue;
            var playerTeamId = xmlDocument.getElementsByTagName("teamId")[0].childNodes[0].nodeValue;
            var playerPicUrl = xmlDocument.getElementsByTagName("mainPic")[0].childNodes[0].nodeValue;
            var playerShooting = xmlDocument.getElementsByTagName("shooting")[0].childNodes[0].nodeValue;
            document.getElementById("playerNameAndTeam").innerHTML = "<b>" + playerName + " " + playerlastName + "</b>" + "<br>" + playerTeamId;
            document.getElementById("playerPicture").src = "img/players/" + playerPicUrl;
            $("[id*='_shooting']").attr("id", playerShooting / 10 + "_shooting"); //attr("id", "5.1_shooting");
            document.title = $("[id*='_shooting']").attr("id");
            $("[id*='_shooting']").css("background-color", "blue");
            $("[id*='playerNameA']").css("background-color", "blue");
        }
    }
    xmlhttp.open("GET", "playerPageMVC/AJAX/getInfoPlayer.php", true);
    xmlhttp.send();
}

function createXHR() {
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        return new XMLHttpRequest();
    } else { // code for IE6, IE5
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
}
4

3 回答 3

2

尝试使用 Native JS 替换此行:

$("[id*='_shooting']").attr("id",playerShooting/10 + "_shooting");

通过这个:

$("[id*='_shooting']")[0].id = playerShooting/10 + "_shooting";

注意:如果$("[id*='_shooting']")匹配很多元素,只有第一个会被改变。

编辑:如果你想保留 jQuery 技术,取决于你的版本,你可以尝试使用prop(...)而不是attr(...)

于 2013-07-24T12:24:55.773 回答
1

当我尝试使用 JQuery 使用示例代码更改 ID 时,它起作用了。您可以在此处查看示例。只需更改id attribute

您应该通过检查元素而不是通过检查网页的加载源来检查 id 更改

于 2013-07-24T12:40:52.440 回答
1

如果您的意思是:

$("[id*='_shooting']").attr("id", playerShooting / 10 + "_shooting");

您可以通过简单地执行以下操作来检查该 id:

$("[id*='_shooting']").attr("id", playerShooting / 10 + "_shooting");
alert($("#"+ playerShooting / 10 + "_shooting").attr("id"));

通过查看源代码,您只能查看原始源代码,而不是当前状态下的 DOM。

于 2013-07-24T13:45:34.413 回答