Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onclick事件未触发 var主题列表; 函数PageMaster() { this.contentDiv=document.getElementById(“内容”); } /** *基于给定的XML文档对象构建网页的主要部分 * *@param{Object}xmlDoc指定的XML文档对象 */ PageMaster.prototype.doIt=函数(xmlDoc) { 警报(“PageMaster()”); 警报(“清除页面…”); this.contentDiv.innerHTML=“”; if(null!=xmlDoc) { 警报(“生成页面…”); //创建div Post var divPost=document.createElement(“div”); divPost.className=“post”; //创建h1元素 var h1Element=document.createElement(“h1”); var headingText=document.createTextNode(“邀请”); h1Element.appendChild(headingText); //将h1元件插入div柱 divPost.appendChild(h1元素); subjectList=xmlDoc.getElementsByTagName(“主题”); var groupList=xmlDoc.getElementsByTagName(“组”); 对于(var i=0;i_Javascript - Fatal编程技术网

Javascript onclick事件未触发 var主题列表; 函数PageMaster() { this.contentDiv=document.getElementById(“内容”); } /** *基于给定的XML文档对象构建网页的主要部分 * *@param{Object}xmlDoc指定的XML文档对象 */ PageMaster.prototype.doIt=函数(xmlDoc) { 警报(“PageMaster()”); 警报(“清除页面…”); this.contentDiv.innerHTML=“”; if(null!=xmlDoc) { 警报(“生成页面…”); //创建div Post var divPost=document.createElement(“div”); divPost.className=“post”; //创建h1元素 var h1Element=document.createElement(“h1”); var headingText=document.createTextNode(“邀请”); h1Element.appendChild(headingText); //将h1元件插入div柱 divPost.appendChild(h1元素); subjectList=xmlDoc.getElementsByTagName(“主题”); var groupList=xmlDoc.getElementsByTagName(“组”); 对于(var i=0;i

Javascript onclick事件未触发 var主题列表; 函数PageMaster() { this.contentDiv=document.getElementById(“内容”); } /** *基于给定的XML文档对象构建网页的主要部分 * *@param{Object}xmlDoc指定的XML文档对象 */ PageMaster.prototype.doIt=函数(xmlDoc) { 警报(“PageMaster()”); 警报(“清除页面…”); this.contentDiv.innerHTML=“”; if(null!=xmlDoc) { 警报(“生成页面…”); //创建div Post var divPost=document.createElement(“div”); divPost.className=“post”; //创建h1元素 var h1Element=document.createElement(“h1”); var headingText=document.createTextNode(“邀请”); h1Element.appendChild(headingText); //将h1元件插入div柱 divPost.appendChild(h1元素); subjectList=xmlDoc.getElementsByTagName(“主题”); var groupList=xmlDoc.getElementsByTagName(“组”); 对于(var i=0;i,javascript,Javascript,主题:“+subjectNum+”-“+subjectName+””; invitationMsg+=“所有者Id:“+ownerId+””,邀请您加入“+groupName+”(groupId:“+groupId+”); cellContent+=邀请赛SG; //创建按钮 cellContent+=“” cellContent+=“” tableCell.innerHTML=cellContent; divEntry.appendChild(表); var blankSpace=docume

主题:“+subjectNum+”-“+subjectName+”

”; invitationMsg+=“所有者Id:“+ownerId+”

”,邀请您加入“+groupName+”(groupId:“+groupId+”); cellContent+=邀请赛SG; //创建按钮 cellContent+=“” cellContent+=“” tableCell.innerHTML=cellContent; divEntry.appendChild(表); var blankSpace=document.createElement(“p”); divEntry.appendChild(空格); divPost.appendChild(divEntry); } //在div内容中插入div post this.contentDiv.appendChild(divPost); } }; 职能邀请(一) { 警惕(“你好”); //警报(主题列表[i]。属性[0]。节点值); } 以上是我的javascript代码摘录。代码所做的是使用accept和decline按钮从xml文件创建邀请组表。当用户按accept时,表格将消失,下面的表格将向上移动。现在我只是测试我的“接受邀请”按钮,看看它是否有效
由于我不明白的原因,我的accept按钮中的onclick函数不起作用。未读取AcceptInvestment()中的警报。任何帮助都将不胜感激。谢谢

试着这样称呼它

var subjectList;

function PageMaster()
{
    this.contentDiv = document.getElementById("content");
}

/**
 * Builds the main part of the web page based on the given XML document object
 *
 * @param {Object} xmlDoc   the given XML document object
 */

PageMaster.prototype.doIt = function(xmlDoc)

{
    alert("PageMaster()");

alert("Clear page...");
this.contentDiv.innerHTML = "";

if (null != xmlDoc) 
{
    alert("Build page...");

    //create div Post
    var divPost = document.createElement("div");
    divPost.className = "post";

    //create h1 element
    var h1Element = document.createElement("h1");
    var headingText = document.createTextNode("Invitations");
    h1Element.appendChild(headingText);

    //insert h1 element into div post
    divPost.appendChild(h1Element);

    subjectList = xmlDoc.getElementsByTagName("subject");   
    var groupList = xmlDoc.getElementsByTagName("group");

    for (var i = 0; i < subjectList.length; i++) //for each subject
    {
        var divEntry = document.createElement("div");
        divEntry.className = "entry";

        var subjectNum = subjectList[i].attributes[0].nodeValue;
        var subjectName = subjectList[i].attributes[1].nodeValue;
        var groupId = groupList[i].attributes[0].nodeValue;
        var groupName = groupList[i].attributes[1].nodeValue;
        var ownerId = groupList[i].attributes[2].nodeValue;

        //set up the invitation table attributes    
        var table = document.createElement("table");
        table.width = 411;
        table.border = 3;
        table.borderColor = "#990000"

        tableRow = table.insertRow(0);
        tableCell = tableRow.insertCell(0);

        var cellContent = "";

        //create invitation message
        var invitationMsg = "<p>Subject : " + subjectNum + " - " + subjectName + "</p>";
        invitationMsg += "<p>You are invited to join " + groupName + " (groupId : " + groupId + ") by owner Id:" + ownerId + "</p>";
        cellContent += invitationMsg;

        //create buttons
        cellContent += "<input type='button' id='acceptButton" + i + "' value='Accept' onclick='acceptInvitation(i)'>"
        cellContent += "<input type='button' id='declineButton" + i + "' value='Decline'>"

        tableCell.innerHTML = cellContent;

        divEntry.appendChild(table);

        var blankSpace = document.createElement("p");
        divEntry.appendChild(blankSpace);
        divPost.appendChild(divEntry); 
    }

    //insert div post into div content
    this.contentDiv.appendChild(divPost);
    }
};

function acceptInvitation(i)
{
    alert("hello");
    //alert(subjectList[i].attributes[0].nodeValue);
}
onclick='acceptInvitation();'
不是这样的

var subjectList;

function PageMaster()
{
    this.contentDiv = document.getElementById("content");
}

/**
 * Builds the main part of the web page based on the given XML document object
 *
 * @param {Object} xmlDoc   the given XML document object
 */

PageMaster.prototype.doIt = function(xmlDoc)

{
    alert("PageMaster()");

alert("Clear page...");
this.contentDiv.innerHTML = "";

if (null != xmlDoc) 
{
    alert("Build page...");

    //create div Post
    var divPost = document.createElement("div");
    divPost.className = "post";

    //create h1 element
    var h1Element = document.createElement("h1");
    var headingText = document.createTextNode("Invitations");
    h1Element.appendChild(headingText);

    //insert h1 element into div post
    divPost.appendChild(h1Element);

    subjectList = xmlDoc.getElementsByTagName("subject");   
    var groupList = xmlDoc.getElementsByTagName("group");

    for (var i = 0; i < subjectList.length; i++) //for each subject
    {
        var divEntry = document.createElement("div");
        divEntry.className = "entry";

        var subjectNum = subjectList[i].attributes[0].nodeValue;
        var subjectName = subjectList[i].attributes[1].nodeValue;
        var groupId = groupList[i].attributes[0].nodeValue;
        var groupName = groupList[i].attributes[1].nodeValue;
        var ownerId = groupList[i].attributes[2].nodeValue;

        //set up the invitation table attributes    
        var table = document.createElement("table");
        table.width = 411;
        table.border = 3;
        table.borderColor = "#990000"

        tableRow = table.insertRow(0);
        tableCell = tableRow.insertCell(0);

        var cellContent = "";

        //create invitation message
        var invitationMsg = "<p>Subject : " + subjectNum + " - " + subjectName + "</p>";
        invitationMsg += "<p>You are invited to join " + groupName + " (groupId : " + groupId + ") by owner Id:" + ownerId + "</p>";
        cellContent += invitationMsg;

        //create buttons
        cellContent += "<input type='button' id='acceptButton" + i + "' value='Accept' onclick='acceptInvitation(i)'>"
        cellContent += "<input type='button' id='declineButton" + i + "' value='Decline'>"

        tableCell.innerHTML = cellContent;

        divEntry.appendChild(table);

        var blankSpace = document.createElement("p");
        divEntry.appendChild(blankSpace);
        divPost.appendChild(divEntry); 
    }

    //insert div post into div content
    this.contentDiv.appendChild(divPost);
    }
};

function acceptInvitation(i)
{
    alert("hello");
    //alert(subjectList[i].attributes[0].nodeValue);
}
onclick='acceptInvitation();'
那么:

onclick='acceptInvitation(i)'

这确保了我是用变量的值来计算的,而不是作为一个文本来计算的,但可能没有解决核心问题

cellContent += "[...] onclick='acceptInvitation("+i+")'>"
在这种情况下,
i
将是未定义的

onclick='acceptInvitation(i)'
至少可以解决一个问题。此外,您正在使用innerHTML和DOM方法的不同寻常的混合。为什么不坚持使用DOM方法并使用attachEvent/AddEventListener

编辑:一个单独的列表有一篇关于变量绑定的好文章

下面是一个有点特殊的例子。请参阅本文以了解更一般化的情况(或使用类似的库)


不知道这是否是导致您出现问题的原因,但您的输出onclick='acceptInvitation(i)'我猜您希望输出acceptInvitation(value-of-i),即acceptInvitation(“+i+”)

尝试使用firefox浏览器进行调试并安装firebug插件,这样您就可以轻松看到代码中断的行(错误发生的地方)谢谢,我没有意识到我可以那样做。顺便说一句,我正在为onclick事件使用内联方法,您现在是否可以使用eventlistener,但仍然可以传递“I”的值,例如。triggerLink=document.getElementById(“接受”);addEventListener(“单击”,(函数名),false);但似乎没有办法包含我之前想要做的“i”,事实上我必须使用eventListener,但在这种情况下,我不知道如何传递“i”。你知道怎么做吗?我如何使用eventListener,但仍然能够传递“I”,我是否将click\u hdlr放入for循环函数中?。我是javascript新手,只学了大约一周,因此不太确定如何正确地使用它。感谢您的帮助抱歉,我应该指定,它不需要在for循环中。我正在尝试更改代码以适合我的程序,但我似乎不了解它是如何工作的。请您详细解释一下,或者给我一个与我的代码相关的例子。非常感谢,Happly是一个属于所有函数的方法。第一个参数是上下文。它允许您应用一个对象的方法,就像它实际上是另一个对象的方法一样。第二个参数是数组。在本例中,我使用了内置的
参数
(传递给函数的参数的类似数组的对象)。请参阅以获得更好的解释