Javascript 检查getAttribute是否未定义
目前,我的javascript正在动态创建页面,因此当用户单击X时,会为该选项生成新的html代码,如果是B,则反之亦然 虽然,我得到了“未定义”的错误。即使我在变量传递到函数之前检查了它们 我当前的非工作原型如下所示Javascript 检查getAttribute是否未定义,javascript,Javascript,目前,我的javascript正在动态创建页面,因此当用户单击X时,会为该选项生成新的html代码,如果是B,则反之亦然 虽然,我得到了“未定义”的错误。即使我在变量传递到函数之前检查了它们 我当前的非工作原型如下所示 var appName; if(evt.target.getAttribute("appName") != "" || evt.target.getAttribute("appName") != null){ appName = evt.target.g
var appName;
if(evt.target.getAttribute("appName") != "" || evt.target.getAttribute("appName") != null){
appName = evt.target.getAttribute("appName");
}
var appName = evt.target.get("appName");
if (typeof appName != typeof undefined && appName !== false) {
appName = evt.target.getAttribute("appName");
}
else appName = 'boo';
在那之前,我试过用这样的东西
var appName;
if(evt.target.getAttribute("appName") != "" || evt.target.getAttribute("appName") != null){
appName = evt.target.getAttribute("appName");
}
var appName = evt.target.get("appName");
if (typeof appName != typeof undefined && appName !== false) {
appName = evt.target.getAttribute("appName");
}
else appName = 'boo';
仍然返回未定义的
最后,我尝试了大致相同的方法,但仍然返回
未捕获类型错误:无法读取未定义的属性“getAttribute”
以下代码如下所示:
var appName = '';
if(evt.target.hasAttribute("appName")){
appName = evt.target.getAttribute("appName");
}
else appName = 'boo';
我如何检查属性是否已设置,如果未设置,我可以继续,然后我想为代码选择替代路线
感谢您的帮助和花费的时间。
evt.target
未定义,这意味着您需要在尝试getAttribute()
之前检查它。这是您拥有的选项之一,主要取决于您的“代码替代课程”是什么:
通过执行此操作,可以检查是否有未定义的内容(复制自):
注意,typeof总是返回一个字符串。此外,与“双重等于”和“三重等于”进行比较也有区别,因此您可能需要查看。我提供了示例片段 您已经尝试了
evt.target.getAttribute
而不是尝试evt.getAttribute
像这样试试
函数findAttr(e){
如果(!e.hasAttribute(“appName”)){
log(“无属性”);
}否则{
log(e.getAttribute(“appName”);
}
}
是否存在attr?
属性是否存在?
如果元素的备用状态由属性的存在/不存在决定,则使用.toggleAttribute()
功能编辑模式(e){
const clicked=e.target;
常量编辑器=document.querySelector('.editor');
如果(单击了.matches('.mode')){
单击.classList.toggle('on');
单击.classList.toggle('off');
编辑器.toggleAttribute('contenteditable');
如果(单击.matches('.off')){
editor.focus();
}否则{
editor.blur();
}
}
返回false;
}
document.querySelector('.mode')。onclick=editMode代码>
.editor{
最小高度:32px
}
.模式{
浮动:对;
显示:内联块;
宽度:100px;
}
在…之前{
内容:“读/写”;
}
在…之前{
内容:“只读”;
}
请提供HTML和整个函数。错误说明了其他内容无法读取未定义的属性“getAttribute”
表示您的evt.target
未定义。请注意:使用严格的不等式==代码>而不是松散的=代码>。也可以使用==
而不是=
,在问题中提供的事件周围没有上下文,如果您的目标是检查未定义的,您可以这样做:if(event.target&&event.target.getAttribute(…){//代码的其余部分}else{//alternate block}您可以显示html吗?