开发者问题收集

**错误:**“未捕获的类型错误:无法读取未定义的属性‘replace’”?

2018-03-20
580

错误: “未捕获的类型错误:无法读取未定义的属性‘replace’”?

jQuery(document).ready(function(){
    	var rep = jQuery(".abc")
              .clone()
              .wrap("<div></div>")
              .parent().html()
              .replace(/select/g,"ul")
              .replace(/option/g,"li");

    	jQuery(".abc").replaceWith(rep);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
1个回答

我认为这可以按预期工作:

jQuery(document).ready(function(){
	var rep = jQuery(".abc")
          .clone()
          .wrap("<div></div>")
          .parent().html()
          .replace(/select/g,"ul")
          .replace(/option/g,"li");

	jQuery(".abc").replaceWith(rep);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="abc">
  <select>
    <option>1</option>
    <option>2</option>
  </select>
</div>

也许您的页面上缺少 .abc 元素。在这种情况下, .html() 将返回 undefined

Raphael Schweikert
2018-03-20