繁体   English   中英

getElementById('___')。innerHTML销毁元素的ID?

[英]getElementById('___').innerHTML Destroying Element's ID?

我试图做到这一点,以便当用户单击导航菜单时,标题更改为该标题,并且主要内容也更改。 我宁愿尝试避免为此使用框架。

$('op').click(function(){
    document.getElementById('title').innerHTML=this.innerHTML + ((this.innerHTML.indexOf("'s")==this.innerHTML.length-2) ? " " : "'s ") + this.parentNode.id + " | Le Lepids";
    document.getElementById('content').innerHTML=document.getElementById(this.innerHTML + '_' + this.parentNode.id).innerHTML;
});
// If the code looks ugly and you can't read it, just tell me.

但是,发生的是标题每次都会完美地更改,但是内容仅更改一次。

例如,它将在第一次正常运行,然后在此后的其他任何时间都无法运行。

为什么会这样呢? 它会破坏ID的“内容”吗? 我虽然没有使用outterHTML。 如果剂量大,为什么标题会变好?


编辑:好的,所以我想我用几行PH​​P来解决它。 但是我仍然想知道为什么Mia DiLorenzo所做的工作可以正常工作,为什么它不能在我的网站上工作……代码与变量名完全相同。

这还不是一个完整的答案(我们需要您的HTML信息),但是我认为此信息正在逐步解决,无法在评论中传达。

在伪代码中(使其更易于理解),这是您的代码正在做的事情:

对于#content项:

  1. 获取单击的op元素的innerHTML。
  2. 在该innerHTML中添加'_'
  3. 添加单击的op元素的parentNode.id。
  4. 使用该制造的ID,在其上执行document.getElementById()查找该对象。
  5. 获取该对象的innerHTML并将该innerHTML放入#content项中。

对于#title项目:

  1. 获取单击的op元素的innerHTML。
  2. 如果该HTML以"'s"结尾,则将" "添加到innerHTML上,否则添加"'s"
  3. 在其上添加parentNode.id。
  4. 在其上添加" | Le Lepids"
  5. #title项的innerHTML设置为该结果。

我可以想到几个原因,为什么#content项可能总是设置为相同的项,或者为什么它有时有时只能工作,但是我们必须查看您的实际HTML才能确定何时或为什么发生。

我不确定您到底想要什么,但我还是写了一些东西http://jsfiddle.net/69FDT/1/

我将$('op')更改$('op') $('p')并添加了一些div以匹配更改content Javascript行。 你还有什么意思吗

<div id="container">
    <div>Click on these words</div>
      <p>change</p>
      <p>modify</p>
      <p>alter</p>
    <br>
      <div id='title'>Title</div>
      <div id='content'>content</div>
<br>
      <div id="change_container">change placeholder div</div>
      <div id="modify_container">modify placeholder div</div>
      <div id="alter_container">alter placeholder div</div>
    </div>​

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM