无法看到存储在变量中的innerHTML的变化

时间:2018-03-01 11:35:37

标签: javascript jquery html

我有一个 jQuery 变量inner_data,里面存有div。

<div id="container">
    <div class="mytest_class">
        <p>hello World</p>
    </div>
</div> 

这是我的jQuery代码

inner_data=document.getElementById('container').innerHTML;
$(inner_data).find('p').replaceWith('<p class="mytest_class">Welcome World</p>');
console.log(inner_data);

当我控制台时,我在inner_data中没有获得修改后的值。不知道发生了什么。一旦我使用inner_html,我被重定向到一个新页面,所以我必须用new替换以前的inner_data而不从DOM访问

3 个答案:

答案 0 :(得分:0)

拼写错误

document.getElementById('container').innerHTML;

$($("#container23").find('p')).replaceWith('<p class="mytest_class">Welcome World</p>');
console.log(inner_data);

答案 1 :(得分:0)

这对我有用:

var inner_data = $('#container');
console.log(inner_data);
inner_data.find('p').replaceWith('<p class="mytest_class">Welcome World</p>');
console.log(inner_data);

.innerHTML是不必要的。

答案 2 :(得分:0)

如下所示更改您的脚本。

var hobbies = [{
    "id": 1,
    "hobbies": []
  },

  {
    "id": 2,
    "hobbies": [
      "football"
    ]
  },
  {
    "id": 3,
    "hobbies": [
      "football",
      "basketball"
    ]
  }
];

var result = hobbies.reduce((acc, item) => {
  item.hobbies.forEach(hobby => {
    acc.push({
      id: item.id,
      hobby: hobby
    });
  });
  return acc;
}, []);

console.log(result);