本机 Javascript - 如果语句不起作用,则具有 else 属性
Posted
技术标签:
【中文标题】本机 Javascript - 如果语句不起作用,则具有 else 属性【英文标题】:Native Javascript - Has attribute else if statement doesn't work 【发布时间】:2019-05-05 12:10:51 【问题描述】:我已经设置了我的变量并将其命名为:
const x = document.querySelector(".ui-datepicker-trigger");
const y = document.querySelector("#ctl00_c_TransPwdFunc_img100");
一旦我设置了变量,我就创建了 if 语句,代码如下:
if (x.hasAttribute("src", "/mvptest_int/App_themes/btnCalendar.png") == x)
x.setAttribute("src","/mvptest_int/App_themes/btnCalendarWhite.png");
console.log(x);
else if (y.hasAttribute("src", "../App_Themes/btnGetSMS.png" == y))
y.setAttribute("src","../App_Themes/btnGetSMSWhite.png");
我已经在控制台日志中单独测试了这一点,它们都在工作。但我面临的问题是:
x 属性仅在开始时显示,一旦用户单击下一步,它就会消失,这就是我面临的问题:
Error messageCode error message
所以我可以看到我的 x 更改工作正常,但由于此错误消息,我的 java 脚本都没有工作。
有人可以帮我解决这个问题,如果有更好的解决方案,请告诉我。
谢谢
FE 看: First page Second page
【问题讨论】:
.hasAttribute
返回true
或false
,不能等于x
,Node
,除非x
是null
(在这种情况下@987654336 @ 将引发错误);同时y
,Node
(或null
)永远不能等于非空字符串。在不知道这段代码的意图和上下文的情况下,我们只能告诉你“它没有意义”。
看起来你的 y
选择器失败了,但是没有 html,很难说原因
感谢您的建议@Amadan 我想要实现的是:如果(在第一页上找到此 x 属性将属性值更改为新的)否则如果(此 y在第一页找到属性将属性值更改为新的)如果(没有找到跳过此代码)x 和 y 属性位于两个不同的页面中。写这个最好的方法是什么??
什么是“首页”? x
和 y
不是代码中的属性,它们是元素节点。
感谢您的输入,我会记住的 :) 抱歉,我还是新手,正在努力学习一切。我刚刚添加了更多屏幕截图并解释了我的脚本遇到的问题:1.i.stack.imgur.com/xvKqk.png 2.i.stack.imgur.com/ssk4a.png 更清楚吗?
【参考方案1】:
如果您检查documentation,您可以看到element.hasAttribute
返回true
或false
并且只需要一个属性,而不是像您所做的那样。
这就是你有错误的原因。
假设你使用x.hasAttribute("src") == x
,它永远不会返回true。
最后一点,确保您的 x
元素存在。
【讨论】:
我想要实现的是:如果(在第一页找到这个 x 属性,将属性值更改为新的)else if(在第一页找到这个 y 属性将属性值更改为新值)如果(没有找到跳过此代码)x 和 y 属性位于两个不同的页面中。写这个最好的方法是什么?感谢您的帮助以上是关于本机 Javascript - 如果语句不起作用,则具有 else 属性的主要内容,如果未能解决你的问题,请参考以下文章
当返回值在新行时,为啥 Javascript 返回语句不起作用?
基本的 If else 语句在 javascript 中不起作用
Javascript:document.getElementById.innerHTML 中的 if-else 语句不起作用