私はこのように見えるかもしれない属性を持っていますabcjQuery12345
、これらの数字は単なる例です。
jQueryで部分文字列を含む属性を決定する方法はありますか?
例えばabcjQuery12344353452343452345="12"
私が知っている唯一のことは、属性にが含まれることabc
です。
私はこのように見えるかもしれない属性を持っていますabcjQuery12345
、これらの数字は単なる例です。
jQueryで部分文字列を含む属性を決定する方法はありますか?
例えばabcjQuery12344353452343452345="12"
私が知っている唯一のことは、属性にが含まれることabc
です。
すべての属性をループして、探している文字列が含まれているかどうかを確認できます。と:
<div customAttr="12" title="me"></div>
<div anotherAttr="Bear"></div>
<div yetAnotherAttr="Elephant"></div>
あなたが使用することができます:
var m = /another/i; //will look for 'another' in the attribute name (i-flag for case-insensitive search)
$('div').each(function(){
var $this = $(this);
$.each(this.attributes,function(){
if (this.name.match(m)){
$this.addClass('selected'); //either select the matching element
$this.text(this.name + ' : ' + this.value); //or use its custom-attribute's value
}
});
});
フィドルを見る
あなたはこのようにそれを行うことができます、JsFiddleのデモ
<div id="div1" myattr="hello" myAttr12342="hello1">Any text</div>
el = document.getElementById('div1');
attrs=el.attributes
for (var i=0; i<attrs.length; i++)
{
attrName = attrs.item(i).nodeName;
attrValue = attrs.item(i).nodeValue;
//alert(attrs.item(i).nodeName);
if(attrName.indexOf('myattr') != -1)
{
alert("Attr Name " + attrName + " Attr Value " + attrValue );
}
}
</ p>
var abcAttr, abcName;
$.each($("#elementID")[0].attributes, function(index, item) {
if (item.nodeName.match(/^abc/)) {
abcName = item.nodeName;
abcAttr = item.nodeValue;
}
});
あなたはこれを行うことができます:
var customNum = 12345; // Switch this out as necessary.
var value = $('#element').attr('abcjQuery' + customNum);
これが実際の例です。
Jquery.attr()メソッドはトリックを行う必要があります
var value = $('#element').attr('abcjQuery' + someCustom);
ただし、data- attributesを使用することをお勧めします。Jquey.data()を使用してこのように
<div id="div1" data-myattr="abcjQuery12345">Any text</div>
検索用:
var value = $('#div1').data('myattr');
alert(value):
あなたはそれを使うことができます:
$('a[@name^="abcjQuery"]')
私があなたの質問を理解しているなら、ここにあなたの答えがあります。
実例: http: //jsfiddle.net/gRsxM/
/*!
* listAttributes jQuery Plugin v1.1.0
*
* Copyright 2010, Michael Riddle
* Licensed under the MIT
* http://jquery.org/license
*
* Date: Sun Mar 28 05:49:39 2010 -0900
*/
if(jQuery) {
jQuery(document).ready(function() {
jQuery.fn.listAttributes = function(prefix) {
var list = [];
$(this).each(function() {
var attributes = [];
for(var key in this.attributes) {
if(!isNaN(key)) {
if(!prefix || this.attributes[key].name.substr(0,prefix.length) == prefix) {
attributes.push(this.attributes[key].name);
}
}
}
list.push(attributes);
});
return (list.length > 1 ? list : list[0]);
}
});
}
$(document).ready(function(){
$('input').each(function(){
var attrs = $(this).listAttributes();
for(var i=0;i<attrs.length;i++){
if(attrs[i].indexOf("abc")>-1) itemProccess($(this));
}
});
});
function itemProccess(item){
console.log(item);
}
属性名に含まれる文字列を指定して属性値を取得する単純な関数:
function getVal(element,name){
var pattern=new RegExp(name,'i');
return $.grep($(element)[0].attributes, function(n){
if (n.name.match(pattern)) return n.nodeValue;
})[0].nodeValue;
}
var myAttr = $("#idOfElement").attr("your_custom_attribute_name");