根据ID动态创建元素(Jquery)
Getting dynamically created element by ID (Jquery)
我正在使用JQuery,并且我正在通过before()动态创建元素,但我无法通过ID访问这些元素。这是一堆代码,我宁愿不张贴它,如果可能的话,但我正在检查文本被用作选择器,然后检查长度;长度说0,但我与"检查元素"工具在chrome和ID肯定是什么应该是交叉引用。这是新创建元素的已知问题吗?当我通过访问给定类的兄弟姐妹来访问元素时,它工作得很好,但现在有多个兄弟姐妹具有相同的类,最有效的方法是使用ID。
当我说我正在检查文本时,我的意思是:
alert("id='"impactPlusMinus~"+questionAnswerNameId+"'"'n"+
$("#impactPlusMinus~"+questionAnswerNameId).length);
波浪~
不是HTML4中id属性的有效字符。试着用别的字符
来源:HTML4规范。http://www.w3.org/TR/html4/types.html id类型ID和NAME标记必须以字母([a- za -z])开头,后面可以跟着任意数量的字母、数字([0-9])、连字符("-")、下划线("_")、冒号(":")和句点("。")。
HTML5规范在这方面没有那么严格,但是在许多浏览器或jQuery等框架上使用波浪可能会遇到问题。例如,在jQuery中,选择器中的波浪表示完全不同的东西。
您需要转义波浪:
$("#impactPlusMinus''~"+questionAnswerNameId)
由于您在Id中使用保留关键字,您可以将其作为属性值访问,或者如果您直接访问它,则使用''
转义特殊字符。
$('[id="impactPlusMinus~' + questionAnswerNameId+ '"]'
或
$("#impactPlusMinus''~" + questionAnswerNameId);
从文档使用任何的元字符(如! " # $ %和 ;'()*+,./:;& lt; => ?@[]^ '{|}~)作为名称的文字部分,必须用两个反斜杠转义:'。
为了避免与jQuery确定标识符的方式发生冲突,特别是在命名不太严格的HTML5的情况下,您可以像这样创建元素引用:
$(document.getElementById('impactPlusMinus~' + questionAnswerNameId));
这确保只使用浏览器来查找元素,然后应用jQuery构造函数。
相关文章:
- Firefox赢得了'不会显示我添加的jquery元素,但Chrome会显示
- 使用返回函数sinde.attr()jquery元素
- Wooccommerce所有JS和Jquery元素都未加载
- 追加JQuery元素和Angular
- 如何获取jQuery集合中的第k个元素..作为JQUERY元素
- 是否存在jQuery元素选择库的最小化版本
- 不能同时通过类和数字 ID 选择 jquery 元素
- 为什么jquery元素在ipad上没有响应
- Jquery元素用法
- 用于获取jQuery元素或值的方法
- 淡入淡出切换jquery元素
- 用于查找在 jQuery 元素集中具有特定类的元素的索引的单行代码
- 选择具有由 data() 设置的某个值的 JQuery 元素
- Jquery 元素的高级过滤
- 链接到另一个带有jQuery元素的页面
- jQuery:通过 .wrap() 添加到 DOM 的 jQuery 元素上的切换类
- 将字符串转换为 jquery 元素并将其追加到 DOM 中
- 与“click”事件一起存储的jQuery元素未按要求工作
- 在哈希数组中保存对 jquery 元素的引用
- 如何从核心JavaScript选择中获取jquery元素