gpt4 book ai didi

javascript - 继续执行dom命令

转载 作者:行者123 更新时间:2023-12-03 07:59:50 25 4
gpt4 key购买 nike

我在一些测试页面中使用这个 dom 命令:

document.querySelector('div#summary-item div.description').innerHTML || ""

但是在某些页面中,当第一部分不存在时,我没有收到第二个“”,但我收到此错误并且我的程序停止

Uncaught TypeError: Cannot read property 'innerHTML' of null(…)

是否有任何简单的方法来接收“”而不需要在 if 语句中使用 typeof ?

最佳答案

您不需要 typeof,但确实需要 if 语句或其他一些流程控制。

var el = document.querySelector('div#summary-item div.description');
var data = "";
if (el)
data = el.innerHTML;

或者这里使用条件运算符:

var el = document.querySelector('div#summary-item div.description');
var data = el ? el.innerHTML : "";
<小时/>

从技术上讲,您可以通过使用具有 .innerHTML 属性的对象来避免使用流程控制语句或表达式。

var data = (document.querySelector('div#summary-item div.description') || {innerHTML:""}).innerHTML;

但我认为这很丑陋。 if 语句是语言的一部分。不确定您为什么要避免它。

<小时/>

当然,如果它真的困扰你,你总是可以使用一个将其抽象出来的函数。

function htmlFromElem(selector) {
var el = document.querySelector(selector);
return el ? el.innerHTML : "";
}

然后像这样使用它:

var data = htmlFromElem('div#summary-item div.description')

关于javascript - 继续执行dom命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com