jQuery基础 -- 如何判断页面元素存在与否

在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在。原因是对一个不存在的元素进行操作是不允许的。例如:

document.getElementById("someID").innerText("hi");

如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getElementById("someID") is null

正确的写法应该是:

obj = document.getElementById("someID");
if (obj){
  obj.innerText("hi");
}

那么在jQuery,我们如何判断页面元素存在与否呢?如果参照上面的传统Javascript的写法,我们第一个想到的办法一定是:

if ($("#someID")){
  $("#someID").text("hi");
}

可是这么写是不对的!因为jQuery对象永远都有返回值,所以$("someID")总是TRUE,IF语句没有起到任何判断作用。正确的写法应该是:

if ( $("#someID").length > 0 ) {
$("#someID").text("hi");
}

注意:判断某个页面元素存在与否在jQuery实际上是没有必要的,jQuery本身会忽略对一个不存在的元素进行操作,并且不会报错。

时间: 2024-10-11 13:20:46

jQuery基础 -- 如何判断页面元素存在与否的相关文章

jQuery 判断页面元素是否存在

在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的. 例如: document.getElementById("someID").innerHTML("hi"); 如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getElementById("someID") is null 正确的写法应该

Selenium(二十):expected_conditions判断页面元素

1. 判断元素(expected_conditons) 作为一个刚刚转到python开发的小朋友,在开发前只将前辈们封装的方法看了一遍,学了一边selenium基础.看到封装的方法有什么判断元素是否存在.判断元素是否可见,而在基础知识中根本不存在,一脸懵逼. 直到写爬虫案例的时候,突然发现了selenium下的一个模块吸引了我,因为我在其他开发中根本没有碰到这个模块,所以我就去了解了一下,然后就有了这篇博客. selenium的expected_conditions模块一般也简称EC,收集了一系

jQuery如何去判断页面是否有父页面?

jQuery如何去判断页面是否有父页面? 是要判断当前页面是否被嵌入在frame里吗? 1 2 3 if (top != self) {     alert('我在框架里'); }

expected_conditions判断页面元素

expected_condtions提供了16种判断页面元素的方法: 1.title_is:判断当前页面的title是否完全等于预期字符串,返回布尔值 2.title_contains:判断当前页面的title是否包含预期字符串,返回布尔值 3.presence_of_element_located:判断某个元素是否被加到dom树下,不代表该元素一定可见 4.visibility_of_element_located:判断某个元素是否可见,可见代表元素非隐藏,并且元素的宽和高都不为0 5.vis

selenium—用NoSuchElementException异常判断页面元素是否存在

一.知识补充 1.find_element的一种使用方法: find_element(by=方法,value=值) 例如: find_element(by="id",value="query") 2.selenium.common.exceptions模块 from selenium.common.exceptions import NoSuchElementException 使用WebDriver实施自动化过程中抛出的所有异常都是用selenium.common

js如何判断是否在iframe中/JQuery调用iframe父页面元素与方法

//方式一 if (self.frameElement && self.frameElement.tagName == "IFRAME") { alert('在iframe中'); } //方式二 if (window.frames.length != parent.frames.length) { alert('在iframe中'); } //方式三 if (self != top) { alert('在iframe中'); } 第一.在iframe中查找父页面元素的

JQuery调用iframe父页面元素与方法

JQuery操作iframe父页面与子页面的元素与方法 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元素的方法: $('#id', window.parent.document) 第二.在父页面中获取iframe中的元素方法: $(this).contents().find("#suggestBox") 第三.在iframe中调用父页面中定义的方法和变量: parent.method parent.value 第四.

JS/jquery实现鼠标控制页面元素显隐

最近因为公司网站要上一个活动广告横幅,当用户鼠标划过时显隐二维码.像这种鼠标事件控制页面元素显隐的情况,码农们会经常遇到,可以通过javascript或jquery代码实现,下面就几种常见需求一起归纳一下. mouseout和mouseleave 这里需要特别注意mouseout与mouseleave的区别.我们通过下面代码示例来看一下: <p style="color:#333333;font-family:-apple-system, " font-size:16px;&qu

判断页面元素是否进入可视区域

近日要做一个页面功能,需要检测某个页面元素是否位于当前屏幕中的可视区域,首先想到的当然是获取offsetLeft和offsetTop,将这个值分别与body.scrollTop/scrollLeft进行比较,得出元素是否可视. 这次查资料时偶然看到了getBoundingClientRect():该方法获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置,他返回的是一个对象,即Object,该对象有是个属性:top,left,right,bottom:这里的top.left和css中的理解