2

私はこのように見えるかもしれない属性を持っていますabcjQuery12345、これらの数字は単なる例です。
jQueryで部分文字列を含む属性を決定する方法はありますか?

例えばabcjQuery12344353452343452345="12"

私が知っている唯一のことは、属性にが含まれることabcです。

4

9 に答える 9

2

すべての属性をループして、探している文字列が含まれているかどうかを確認できます。と:

​&lt;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
        }
    });
});​

フィドルを見る

于 2012-05-10T12:42:38.430 に答える
1

あなたはこのようにそれを行うことができます、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>

于 2012-05-10T12:32:29.947 に答える
1
var abcAttr, abcName;

​$.each($("#elementID")​[0].attributes, function(index, item) {
    if (item.nodeName.match(/^abc/)) {
        abcName = item.nodeName;
        abcAttr = item.nodeValue;
    }
});

フィドル

于 2012-05-10T13:21:47.413 に答える
0

あなたはこれを行うことができます:

var customNum = 12345; // Switch this out as necessary.
var value = $('#element').attr('abcjQuery' + customNum);

これが実際のです。

于 2012-05-10T12:31:36.250 に答える
0

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):
于 2012-05-10T12:34:44.377 に答える
0

あなたはそれを使うことができます:

$('a[@name^="abcjQuery"]')
于 2012-05-10T12:43:22.487 に答える
0

私があなたの質問を理解しているなら、ここにあなたの答えがあります。

実例: 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);
}
​
于 2012-05-10T13:00:16.597 に答える
0

属性名に含まれる文字列を指定して属性値を取得する単純な関数:

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;
}

デモ

于 2012-05-10T13:04:33.893 に答える
-1
var myAttr = $("#idOfElement").attr("your_custom_attribute_name");
于 2017-04-25T05:18:53.310 に答える