带冒号的jquery自定义选择器
我需要一个函数来选择具有自定义属性的所有元素,并获取其名称和值。例如:带冒号的jquery自定义选择器,jquery,selector,colon,Jquery,Selector,Colon,我需要一个函数来选择具有自定义属性的所有元素,并获取其名称和值。例如: <input type="text" my:name="koni" my:age="20" my:city="New York" /> 及 我怎样才能做到 编辑:对不起,忘记粘贴html了 我希望循环遍历具有此类自定义my属性的每个输入,并获取数组中的值和键。对于本例,我应该: key=name, 值=科尼 及 钥匙=年龄, 值=20 …您应该能够选择 <div cheese="brie">foob
<input type="text" my:name="koni" my:age="20" my:city="New York" />
及
我怎样才能做到
编辑:对不起,忘记粘贴html了
我希望循环遍历具有此类自定义my属性的每个输入,并获取数组中的值和键。对于本例,我应该:
key=name,
值=科尼
及
钥匙=年龄,
值=20
…您应该能够选择
<div cheese="brie">foobar</div>
我不认为有一种简单的方法可以使用jquery选择器一下子做到这一点,因为您不知道要查找的属性的确切名称。(你只知道它的前缀。)那么,也许你可以循环所有的输入,然后遍历属性检查是否有任何想要的匹配
$('input').each(function() {
var result = {}; // to hold any results we might find
var attrs = this.attributes; // this array is provided by the DOM
for (var idx in attrs) {
var attrName = attrs[idx].name;
if (/^my:/.test(attrName)) { // must start with this hardcoded pattern
var key = attrName.substring(3); // skip first 3 chars
var value = $(this).attr(attrName);
result[key] = value;
}
}
// do something with your result obj here...
if (result['name']) {
alert('found input with my:name of ' + result['name']);
}
});
我把结果放在一个对象而不是一个数组中(这似乎更有意义),但这应该会给你一个大致的想法,如果你想改进它的话
祝你好运 我不清楚你到底想做什么。请尽量更清楚。这将不起作用,因为元素和属性都应该是泛型的。该属性以“my:”开头,但结尾是泛型的
<div cheese="brie">foobar</div>
var items = $("div[cheese]");
$('input').each(function() {
var result = {}; // to hold any results we might find
var attrs = this.attributes; // this array is provided by the DOM
for (var idx in attrs) {
var attrName = attrs[idx].name;
if (/^my:/.test(attrName)) { // must start with this hardcoded pattern
var key = attrName.substring(3); // skip first 3 chars
var value = $(this).attr(attrName);
result[key] = value;
}
}
// do something with your result obj here...
if (result['name']) {
alert('found input with my:name of ' + result['name']);
}
});