【问题标题】:Uncaught TypeError: Cannot call method 'replace' of undefined未捕获的类型错误:无法调用未定义的方法“替换”
【发布时间】:2013-07-18 17:58:46
【问题描述】:
var container = document.getElementById("f2");
text = text.replace(/\:\)/g, '<img src="images.jpg" border="0">');

在此代码中出现此错误。
在函数的开头text 被定义为var。 f2代码在这里:

     <table style='width: 100%'>
        <tr>
        <td>

                     <textarea id="fname" class="span5 chattextarea" style="resize: none;"            cols="240" rows="13" disabled="disabled" style="float:centre" style="background-color: transparent" style="border: 3px dotted #f7730E;"></textarea>
   </td>
 </tr>
<tr>
   <td>
     <input type="text" id="f2" style="width: 440; height:100%"  class="chattextarea" autocomplete="off"  onkeyup="Javascript: if (event.keyCode==13) testChat();" placeholder= "Type your Message"></input>
 <input type="button" class="btn-success" style="width: 50px" value="Send" onclick="testChat()"></input>
  </td>

</tr>
</table>

未捕获的类型错误:无法调用未定义的“替换”方法

【问题讨论】:

  • text 定义在哪里?
  • 你还没有定义变量text
  • Javascript 可能很神奇,但没那么神奇。

标签: javascript


【解决方案1】:

您尚未在任何地方定义变量 text

text.replace() 更改为container.innerHTML.replace()

而且我怀疑你以后想这样做

container.innerHTML = text;

以便您的 container 元素将图像作为新内容获取。

【讨论】:

  • 那么你的f2 元素可能不在DOM中。
【解决方案2】:
var container = document.getElementById("f2").innerHTML;  // incase you use innerHTML
var text = container.replace(/\:\)/g, '<img src="images.jpg" border="0">');

如果它是关于元素f2的值,那么

var container = document.getElementById("f2").value;  // incase you use value
var text = container.replace(/\:\)/g, '<img src="images.jpg" border="0">');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2011-11-12
    • 2013-09-14
    • 2013-06-17
    相关资源
    最近更新 更多