在javascript中,string.replace给出了未捕获的TypeError:无法调用方法';更换';空的

在javascript中,string.replace给出了未捕获的TypeError:无法调用方法';更换';空的,javascript,jquery,Javascript,Jquery,提供未捕获的TypeError:无法调用null的方法“replace” function superman(){ //some code var opitem = $("#opinionitem").html(); opitem.replace(":opinionid","valid string"); //more code } 提供一个字符串警报,不为空 自以为是 alert(opitem) 图像在这里 :阿匹尼尼 :意见 :注 :日期已张贴- :最后一票- :最后评论 删除意见

提供未捕获的TypeError:无法调用null的方法“replace”

function superman(){ //some code
var opitem = $("#opinionitem").html();
opitem.replace(":opinionid","valid string");
//more code
}
提供一个字符串警报,不为空

自以为是

alert(opitem) 

图像在这里
:阿匹尼尼
:意见
:注
:日期已张贴- :最后一票- :最后评论 删除意见
选择器不会获取任何元素,因此
html
返回null

检查演示:


警报($('#first').html());//警报(“”);
警报($('#second').html());​ // 警报(空);


解决了我的问题,谢谢thiefmaster

您是否使用调试器(如firebug)验证错误是否确实发生在您发布的代码中?哦,您需要分配
replace()
的返回值,因为它不会修改调用它的字符串。这意味着
$(“#opinionitem”).html()
不会返回任何内容。页面上可能没有具有该“id”值的项目。您能告诉我们
$(“#opinioitem”)
有什么问题吗?我看不出有什么不同?@gdoron.replace方法返回被替换的字符串,它不会更新对象实例,因此我需要将其分配给对象insance。尽管如此(并且已经知道…),这仍然不能解释为什么会出现null错误。
<div id="opinionitem" opinionid="0" >
        <table>
          <tr>
            <td>Image Here<img src="" onclick=""></img></td>
            <td>
              <input type="hidden" value="0"/>
              <span id="opinionid">:opinionid</span>
              <span id="opinion">:opinion</span><br/>
              <span id="note">:note</span></br>
              <span id="dateposted">:dateposted</span> - 
              <span id="lastvote">:lastvote</span> - 
              <span id=""lastcomment>:lastcomment</span>

              <button id="deleteopinionbutton" 
                      onclick="deleteopinion(:opinionid)">Delete Opinion</button>
            </td>
          </tr>
        </table>
      </div>
<div id='first'></div>
alert($('#first').html());  // alert(''); 
alert($('#second').html());​ // alert(null);
opitem=opitem.replace(":opinionid","valid string");