访问jquery/javascript中的属性和属性
Accessing attributes and properties in jquery/javascript
我有一个现有的应用程序,它使用javascript和属性,如notNull, isDate等在html元素中定义的元素,如输入,选择等
例如:<input type = 'text' notNull class='mandatoryField' name = 'abc' id='abc' isDate/>
javascript使用hasProp方法检查属性,将代码放在下面,并显示相应的警告消息:
function hasProp(thisField, thisProp) {
for ( var prop in thisField) {
if (prop == thisProp)
return true;
}
return false;
}
我的问题是使用不同的浏览器- IE, Chrome和Firefox
这些特殊的方法对于ie来说都是可以的。当涉及到chrome和firefox时,notNull, isDate被视为属性而不是属性,并且上面的hasProp方法总是返回false。
我确实在这里做了很多可用的问题,但没有找到任何方法可以同时访问属性和属性-我更喜欢使用jQuery,因为我们最终将迁移到jQuery。
任何指向这个的指针都会很有帮助。
谢谢,瑞玛·
我认为你使用属性和属性的方式不是100%准确的,属性(.prop()
)在jQuery上下文中基本上是属性在内存中的值,其中.attr()
反映了标记中的值。这只适用于"内置"的HTML属性。在你的例子中,你一直在处理属性,只是有些属性没有任何值。
检测属性存在的最佳方法,使用jQuery跨浏览器:
$('#myElement').is('[attrName]') === true
那么,在你的例子中:
$('#abc').is('[isDate]') === true
查看JS-Fiddle
如果你想要一个jQuery解决方案,你可以使用jQuery.attr()和jQuery.prop()方法来解决你的问题。
我更喜欢纯Javascript方法:
var attributes = ['notNull', 'isDate'],
checkForAttribute = function(elem){
for(var i = 0, c = attributes.length ; i < c ; i++){
if(elem.getAttribute(attributes[i]) !== null){
console.log("attribute " + attributes[i] + " found");
}else{
console.log("attribute " + attributes[i] + " not found");
}
}
}
请参阅此处的工作示例。
下面是关于getAttribute()方法的更多信息
相关文章:
- 保存具有相同属性 JavaScript 的元素上的值
- DOM 元素上的空样式属性:JavaScript
- 基于一个属性Javascript检索多个对象
- xml获取属性javascript不会;无法处理childNodes
- 当输入填充了必需的属性javascript/html/css时,如何更改焦点颜色
- 如何处理未定义属性的未定义属性 javascript 类型错误
- 向嵌套对象添加属性 - Javascript
- 属性 Javascript 的访问属性
- 更改链中的 css 属性 - JavaScript
- 更改属性 Javascript 方式的值
- 如何从 url 解析 xml 获取属性 javascript
- 语法错误:缺少:在属性 javascript 之后
- 创建 if 条件基于 CSS 属性 -- JavaScript
- 访问节点的属性javascript二进制搜索树
- 访问父函数属性Javascript
- 为什么未定义此对象的属性?Javascript
- 访问私有属性Javascript OOP
- 访问数组中的属性?(Javascript)
- 动态添加参数作为对象的属性-JavaScript
- 冲突/方法/属性Javascript错误