
正文
jquery动态生成html获取不到,jq获取动态生成元素
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
jquery用this获取不到html行内绑定事件的元素
//name属性是对象本身就有的属性,可以直接取。
请把你的代码贴出来可以吗?jq获取不到元素,可能是因为你未加载完dom就开始获取,建议把jq获取元素的操作放到body后执行(这样操作等价于 (function(){ 你的代码 })也等价于ready操作。
这个要用到“事件委托”,就是把动态添加的元素的事件委托给它的父元素(非动态的)去处理,这样的话不管其子元素如果动态添加,都能捕捉其事件。
如果是获取值,我想楼上的那位朋友他已经说过了,是说可以成功的,但是如果获取事件估计就不行了。我所说的事件是指$(.inner-message a).click或者$(.inner-message a).hover这种。
$ (:button).click (function () { body.append (a class=details href=#详情/a); }); // 动态插入的html,需要委派事件处理。
其实看明白上面的例子,就知道错在哪里了:很简单,this操作的是HTML对象,那么,HTML对象中怎么会有val()方法了,所以,在使用中,我们不能直接用this来直接调用jquery的方法或者属性。
相关问答
Q1: 使用Jquery添加HTML代码,但是添加的属性无效
1、基本语法 (selector).wrap(wrapper)参数说明:wrapper,必需。规定包裹被选元素的内容。
2、要在按钮创建之前,对添加属性按钮的类,绑定事件。
3、造成这个问题的原因,是因为jquery他的事件机制是当页面完全加载成功后,会根据所有目前页面上符合要求的dom添加事件标示,这样当你触发事件的时候,拥有该事件标示的DOM就会给予响应。
4、childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。解决方案:chrome在遍历子节点时,在for循环里不妨加上:if(childNodes[i].nodeName==#text) {};或者nodeType == 1。
5、这种点击事件的绑定只适用于初始化已经存在的id,后面动态添加的控件不再享用。
Q2: 我用js动态的写入html文本,在浏览器中看到了效果,但是在源文件中看...
浏览器显示的是它从服务器端加载到的HTML,所以JS动态生成的HTML它是不会显示的。要想看到自己生成的HTML,只能是自己写代码把它显示在一个DIV或者其他的什么元素里。
动态添加的html代码,如果在还没有真正渲染生成dom之前,js是无法获取到它们的,也就是节点根本不存在,所以原本的js就无法生效。对于动态生成的html,应该在生成完成之后再执行一次需要对这些html操作的js代码。
js放在html页面中起作用,单独放到js页面调用就不起作用是设置错误造成的,解决方法为:新建html文档。准备好需要用到的图标。书写hmtl代码。
从您的描述来看,您代码的问题在于js的工作机制是顺序执行,当您的代码屋里顺序出现问题,则会出现变量异常等问题导致页面显示失败。
使用js改变dom之后,在浏览器源代码窗口中是看不出的,但是可以通过浏览器的调试工具看到。比如firefox中的firebug插件,以及chrome中的调试工具。
Q3: 自己在网页动态添加了一段html,为什么用jquery的选择器选择不到,是不...
造成这个问题的原因,是因为jquery他的事件机制是当页面完全加载成功后,会根据所有目前页面上符合要求的dom添加事件标示,这样当你触发事件的时候,拥有该事件标示的DOM就会给予响应。
请把你的代码贴出来可以吗?jq获取不到元素,可能是因为你未加载完dom就开始获取,建议把jq获取元素的操作放到body后执行(这样操作等价于 (function(){ 你的代码 })也等价于ready操作。
(.tablesorter[id=alltask])加引号变字符串试试。既然知道ID了$(#alltask)就是最快的,这样绕个圈性能很差。
jQuery选择器是jQuery强大的体现,它提供了一组方法,让我们更加方便的获取到页面中的元素。jQuery 元素选择器和属性选择器允许您通过标签名、属性名或内容对 HTML 元素进行选择。
jquery中使用.val(),取不到值,是设置错误造成的,解决方法如下:首先新建一个HTML文档,指定input元素的ID,如下图所示。然后编写JS脚本,根据ID选择元素,如下图所示。
关于选择器:hidden的说明,在jquery说明文档中是这样说的:匹配所有不可见元素,或者type为hidden的元素。而[type=hidden]是查找所有type属性等于hidden的元素。
Q4: jQuery无法获取html页面
1、你的操作属于跨域访问,基于安全考虑,这是不可能实现的任务。你需要用服务器端语言来获取源代码。AJAX 只能同域操作,就是访问的地址在你控制范围之内。你可以使用 JSONP 来进行跨域访问,不过对方需支持 JSONP 才可以。
2、检查jquery语法是否正确。检查url的是否正确。
3、先console一下$,看有没有返回值。没有的话,首先看下路径对不对,左边图片一个也没有右边引入的文件。有的话就ctrl+f5刷一下,再找找。
Q5: 为什么用jquery获取不到元素
1、(.tablesorter[id=alltask])加引号变字符串试试。既然知道ID了$(#alltask)就是最快的,这样绕个圈性能很差。
2、你给a标签一个ID。然后go(id)。刚刚回答错了。没注意上面那张图片。
3、如果是获取值,我想楼上的那位朋友他已经说过了,是说可以成功的,但是如果获取事件估计就不行了。我所说的事件是指$(.inner-message a).click或者$(.inner-message a).hover这种。
4、Jquery用ajax获取数据后在页面取不到,确定后台已经传数据过来了是设置错误造成的,解决方法为:打开HBuilderX工具,创建Web项目,新建静态页面ajax.html。打开已新建的ajax.html文件,引入jquery文件并修改title标签内容。
5、val()是取不到数据的,必须换成.text(),方法如下:首先,创建一个新的HTML文档,并指定 元素的ID,如下图所示,然后进入下一步。
jquery动态生成html获取不到的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于jq获取动态生成元素、jquery动态生成html获取不到的信息别忘了在本站进行查找喔。







