【问题标题】:COMPLETE - pureJS issue with writing data, any ideas?COMPLETE - pureJS 写入数据的问题,有什么想法吗?
【发布时间】:2014-10-18 23:18:20
【问题描述】:

我正在尝试从“create_name()”中获取数据并将结果写入

<p id="name"> </p> 

更新变量名以显示新版本。

但是我有点迷失在诚实中,而是返回“未定义”作为名称。

代码显然到达了这部分然后失败了:

Writedata(create_name); // now write our username
menu_function();
}


function Writedata(nameUser){
    document.getElementById("name").innerHTML='hello ' + nameUser + ' below are your options'; // write the username.
}

您可以在此处查看我正在尝试制作的整个部分的代码。

我希望我解释得足够清楚。

有任何问题吗?随时提问,感谢所有帮助!

init(); // lets start the inital func

function init(){ // Do some asking shit
    var name = prompt('hello, what is your name?'); // ask for the name
    document.write('<p id="name">hello ' + name + ' </p>');
    document.write('<p id="user" >1 - create a username</p>');
    document.write('<p id ="play" >2 - Play Quiz<p>');
    document.write('<p id="reload">3 - quit and reload<p>');
    Writedata(name); // tell our witer to write the name
}

function menu_function() {
    var choice = prompt("hello " + name + " please select an option from the list to your left");

    switch (choice) {
        case "1": opt1_function(); break;
        case "2": opt2_function(); break;
        case "3": reload_method(); break;
        default: menu_function(); break;
    }
}

menu_function();

function opt1_function() {
    alert(name + " you have selected option 1");
    create_name();
}

function create_name() {
    var forename = prompt("what is your forename?");
    var surname = prompt("what is your surname?");
    var username = alert("hello " + forename + " " + surname);
    var string1 = forename.substring(0 , 1);
    var create_name = alert(string1 + surname);
    Writedata(create_name); // now write our username
    menu_function();
}

function Writedata(nameUser){
    document.getElementById("name").innerHTML='hello ' + nameUser + ' below are your options'; // write the username.
}

【问题讨论】:

  • alert() 不返回任何内容,那么您期望create_name 等于什么?
  • @Moob 我希望警报中的文本成为变量“name”的新值,以替换以下内容中的“name”:'document.write('

    你好'+名字+'

    ');'通过这些行:'Writedata(create_name); // 现在写下我们的用户名 menu_function(); } function Writedata(nameUser){ document.getElementById("name").innerHTML='hello ' + nameUser + ' 下面是你的选择'; // 写入用户名。 }' 让自己有点迷失了。
  • 修复了!刚刚删除了警报,现在它显示 var create_name = string1 + surname; Writedata(create_name); // now write our username menu_function(); 并且它有效!
  • 查看 Alper 的解决方案。

标签: javascript function document issue-tracking


【解决方案1】:

停止给变量赋值alert()函数返回值,alert()没有返回值look at this alert definition

改变这一行

var create_name = alert(string1 + surname);

alert(string1 + surname);
var create_name = string1 + surname;

【讨论】:

  • 干杯!现在完美运行!我知道一定是我有点瞎!谢谢!
【解决方案2】:

将 create_name() 函数中的数据更改为:

function create_name() {
var forename = prompt("what is your forename?");
var surname = prompt("what is your surname?");
var username = alert("hello " + forename + " " + surname);
var string1 = forename.substring(0 , 1);
var create_name = string1 + surname;
Writedata(create_name); // now write our username
menu_function();
}

function Writedata(nameUser){
        document.getElementById("name").innerHTML='hello ' + nameUser + ' below are your options'; // write the username.
}

现在它可以工作了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2011-08-04
    • 2011-03-08
    相关资源
    最近更新 更多