首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    jQuery 查找on事件绑定元素的被绑定元素方法

    jQuery 查找on事件绑定元素的被绑定元素方法 遇到的问题 今天写了一个JQ插件,结果里面有一点问题.让我很郁闷.问题演示代码如下 $box.on('click', 'img', function(...){ $(this) }); 如上代码,当我点击这个图片的时候 $(this) 是指 img ....当然这是正确的. 而我需要找到 $box 也就是 img 的父级. 如果不是插件的话,我当然可以根据它的ID或者CLASS来进行查询.问题是,我是写的插件,也就是说,我并不知道它的这些信息是什么....解决方法 很多基础的东西不理解,就会出现我这样的问题.如同事所说,你是还不会爬呢,都学上跑了.因此,踩坑无数啊....解决方法如下: $box.on('click', 'img', function(){ $box.has($(this)) }); 如上,通过 .has 操作,就能找到唯一的父级被绑定元素了.

    4.5K10

    Js - JQ事件委托( 适用于给动态生成的脚本元素添加事件)

    之所以整理成随笔,是因为我之前没遇到过这个问题,听过事件委托机制,但是根本没研究过不知道适用于什么样的bug场景。今天逮到了就不能放过!...-----非故事分割线------------------------------------------------------------------———————— jq写了点击事件,是通过获取元素的类名被点击后执行对应方法...,但是研发套完模板,他会把所有的结构先清空,导致jq根本找不到那个元素,所以事件就不得执行了。...正规点的说:JS异步加载,JQ事件不被执行解决方法(百度的标题,hah) jquery中动态新增的元素节点无法触发事件问题(同上) 解决方法: ? ?...值得注意的是:亲测此方法无效,可能是我用的jq的版本太高了,1.9多,已经不支持这个方法了 第二个方法: ? 但是缺点是:给一个元素添加多个事件委托机制时,他就挂了。  王者方法:on ?

    4.9K50

    动态生成DOM元素的高度及行数获取与计算方法

    背景 在开发IM的项目过程中,经常会有出现一些需要计算DOM高度,然后超出若干行隐藏等需求。很多时候,需要计算高度的DOM元素都是动态生成的,我们无法在数据渲染前获取到它的高度。...但是,如果我们需要获取到这段在内存中未渲染的动态文本,也能够通过如下几个方法。...优点 此方案实现简单,基本不需要任何成本,适用于只有等宽文字的情况下。 缺点 这个方案缺点也比较明显,基本无法用于纯文本之外的任何情况。...方案再优化 利用现有DOM容器 使用cloneNode方法来对现有的容器进行clone,我们可以省去输入样式的麻烦,同时能够精确保证两个容器完全一致。...总结 获取动态元素的高度一直都是IM项目中的一个重要需求,自己在这个方面也踩了许多坑,因此写了这一篇博客来进行记录,同时其他人如果看到了也可以避免一些常见问题。

    4K30

    Selenium 如何定位 JavaScript 动态生成的页面元素

    图片Selenium 是一个自动化测试工具,可以用来模拟浏览器的操作,如点击、输入、滚动等。但是有时候,我们需要定位的页面元素并不是一开始就存在的,而是由 JavaScript 动态生成的。...除了上面的方法,还有一些其他的定位技巧可以用来定位 JavaScript 动态生成的页面元素,比如:1、使用 XPath 表达式from selenium import webdriverfrom selenium.webdriver.support.ui...然后,我们使用 execute_script() 方法执行 JavaScript 代码来动态生成一个文本框元素。...接下来,我们使用 XPath 表达式 "//input@id='dynamic_textbox'" 定位这个动态生成的文本框元素。...接下来,我们使用find_element_by_css_selector()方法和CSS选择器#dynamic-element定位页面上ID为dynamic-element的动态生成元素。

    3.1K20

    JS和JQuery获取当前元素的兄弟及父级等元素的方法

    ) jQuery.parents(expr),类似于 jQuery.parents(expr) ,但是是查找所有祖先元素,不限于父元素 jQuery.children(expr),返回所有子节点,这个方法只会返回直接的孩子节点...这个方法和 children() 的区别就在于,包括空白文本,也会被作为一个 jQuery 对象返回, children() 则只会返回节点 jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点...,而 jQuery.find(),的返回结果,不会有初始集合中的内容,比如 $("p").find("span") ,是从 元素开始找 ,等同于 $("p span") JS获取:...;   //获得s的最后一个子节点 JS获取节点父级,子级元素:JS的方法会比JQUERY麻烦很多,主要则是因为FF、谷歌浏览器会把你的换行也当作DOM元素:空的text元素,目前IE也是这样       原生的JS获取ID为test的元素下的子元素。

    12.7K10

    jquery中dom元素的attr和prop方法的理解

    一、背景   在编写使用高版本[ jQuery 1.6 开始新增了一个方法 prop()]的jquery插件进行编写js代码的时候,经常不知道dom元素的attr和prop方法到底有什么区别?...各自有什么应用场景,什么时候使用attr方法更合适?什么时候使用prop方法更加方便?今天我就结合自己平常的使用来谈谈这些问题以及我个人的理解。...也是W3C里本身就包含的几个属性,换句话说是IDE中能够自动提示的属性,这些属性就被称为dom元素的固有属性,这种情况下,我建议使用prop方法。   ...a标签中的固有属性中并不包含该属性。这些属性被称为dom元素的自定义属性,这种情况下,我建议使用attr方法。此时若使用prop方法进行设置和获取该属性的值时就会返回undefined值。   ...、radio、select等元素的选中属性"checked"和"selected",这些属性也是dom元素的固有属性,因此使用prop方法才能正确的进行获取和设置。

    1.2K20

    jquery中动态新增的元素节点无法触发事件解决办法

    在使用jquery中动态新增的元素节点时会发现添加的事件是无法触发的,我们下面就为各位来详细的介绍此问题的解决办法.   ...其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件。...解决jquery中动态新增的元素节点无法触发事件的问题有两种解决方法,如下: 方法一:使用live   live()函数会给被选的元素绑定上一个或者多个事件处理程序,并且规定当这些事件发生时运行的函数。...通过live()函数适用于匹配选择器的当前及未来的元素。比如,通过脚本动态创建的元素。...实现如下: $('.liLabel').live('click', function(){ alert('OK'); }); 方法二:使用on   可以通过on方法绑定事件,可以绑定到它的父级或者

    1.7K20

    获取页面中被选中元素的 JS原生方法 与 jQuery方法 分析

    说明 测试用的浏览器是chrome,jquery的版本用了1.11.3和3.2.0 js 原生方法 方法一: document.getElementById(elementID)["checked"]...('checked'); //返回true 或者 false 解释 方法一 严格来说,好吧,不能算是jQuery的方法,这个方法先通过jQuery获取元素,但这里获取的是一个jQuery对象,所以又通过...get()方法转成了DOM元素,($(selector).get(index); get() 方法获取由选择器指定的 DOM 元素),后面这个 .checked,应该算是js原生的,类似于js原生 方法二...方法二 is() 方法用于查看选择的元素是否匹配选择器,:checked 是jQuery中的选择器 选取所有被选中的元素(复选框或单选按钮)这个方法是推荐使用的jQuery方法 方法三 这个方法不推荐使用...,缺陷和上面js方法中提到的缺陷是一样的 方法四 这个方法非常推荐使用 prop() 方法设置或返回被选元素的属性和值。

    5.4K20
    领券