【问题标题】:javascript innerhtml return valuejavascript innerhtml 返回值
【发布时间】:2013-03-30 07:13:07
【问题描述】:

我很难理解这一点。 我有这个位代码:

document.getElementById("widget-container-1").innerHTML="<div class='title'>Select town: "+
         "<select id='drop'>"+
         "<option name='Auckland' value='Auckland'>Auckland</option>"+
         "<option name='Christchurch' value='Christchurch'>Christchurch</option>"+
         "<option name='Dunedin' value='Dunedin'>Dunedin</option>"+
         "<option>Hamilton</option>"+
         "<option>Tauranga</option>"+
         "<option>Wellington</option>"+
         "</select><br />"+      
         "<button id='update' name='update' onClick=\"this, _refreshWeatherDisplay(test);'\">update</button></div>"+
         "<div class='monitor'>Sort by"+
         "<input id='radio' name='input' type='radio' value='0' >town"+
         "<input id='radio' name='input' type='radio' value='1' >max temp"+
         "<div class='section'>test</div></div>";        

        select = document.getElementById("drop");
         select.onchange = function(){
            _checkNewTown(this.options[this.selectedIndex].text);
         };

我想获取数据并执行另一个功能:

var _checkNewTown =  function(ntown){
    alert(this.selectedIndex);
}

但是,在 -checkNewTown 函数中是保持返回未定义。 当我尝试提醒它时,该按钮不起作用。

var _refreshWeatherDisplay = function(weather_info){
 alert("test");
}

我知道这可能很简单,但我不知道我做错了什么 如果有人可以帮助我,将不胜感激。

【问题讨论】:

  • 要么我不明白,要么你可以调用另一个函数:callFunction(data);
  • 有什么问题?您是否尝试将 _checkNewTown(this.options[this.selectedIndex].text); 放入 onchange 函数中?
  • 请注意,对于选择元素,更改事件会因浏览器而异。例如。在调度更改事件之前,控件可能需要在某些浏览器中而不是其他浏览器中失去焦点。如果使用光标键导航,IE 将在每次按下光标键以突出显示新选项时发送一个更改事件。
  • 大家好,感谢您的回复,我是 javascript 新手,抱歉我的问题有点不完整。我正在尝试将值从选择选项传递给新函数 _checkNewTown 函数,我正在使用警报来测试它 - 警报(this.selectedIndex),但警报返回未定义的数据,在这里我无法从中选择数据在那里。
  • 我更新了我的问题的代码,如果有人可以帮助我,我真的很感激。非常感谢

标签: javascript html dom innerhtml


【解决方案1】:

您的代码中有很多语法错误,请查看浏览器的控制台以跟踪这些错误(IE9 和 Chrome 为 F12,Firefox 为 Ctrl+Shift+J)。这段代码对我来说可以正常工作:

document.getElementById("widget-container-1").innerHTML = "<div class='title'>Select town: "+
    "<select id='drop'>"+
    "<option name='Auckland' value='Auckland'>Auckland</option>"+
    "<option name='Christchurch' value='Christchurch'>Christchurch</option>"+
    "<option name='Dunedin' value='Dunedin'>Dunedin</option>"+
    "<option>Hamilton</option>"+
    "<option>Tauranga</option>"+
    "<option>Wellington</option>"+
    "</select><br />"+      
    "<button id='update' name='update' onClick=\"_refreshWeatherDisplay('test');\">update</button></div>"+
    "<div class='monitor'>Sort by"+
    "<input id='radio' name='input' type='radio' value='0' >town"+
    "<input id='radio' name='input' type='radio' value='1' >max temp"+
    "<div class='section'>test</div></div>";        
select = document.getElementById("drop");
select.onchange = function(){
    _checkNewTown(select.options[select.selectedIndex].value);
};

还有你的功能:

var _checkNewTown =  function(ntown){
    alert(ntown);
};
var _refreshWeatherDisplay = function(weather_info){
    alert("test");
};

【讨论】:

  • 感谢您的回复,是的,几乎没有错误,因为我的代码不完整,我正在尝试学习javascript并决定创建一个天气小部件,但没有找到很多东西,一切正常已经完成了,我想从头开始学习。希望找到教程或其他东西来帮助我。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-16
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多