1

HtmlページのA Divに入力するサーバーからのデータがいくつかあります。div の書き方は次のとおりです。

    <div class="BigDiv"><label class = "AttList" Std_Id="' + Std_Id + '">' + Std_Name +'</label></div>

ここで、この div 内のデータが必要です。div 内には他にもいくつかのラベルがあるため、this.children を使用してこのラベルにアクセスします。

        var labels = $(this).children('div');
        var StdName = this.children[0].childNodes[0].nodeValue;

Std_Id 属性内のStd_Idにアクセスしたいのですが、やり方がわかりません... 何かアイデアはありますか? ありがとう。

4

4 に答える 4

3

それが要素$(this)への参照であると仮定します。.BigDiv

var StdName = $(this).find('label').attr('Std_Id');

または、同様に、this要素であるという前提で.BigDiv:

var children = this.childNodes;
for (var i=0,len=children.length; i<len; i++){
    if (children[i].nodeType == 1 && children[i].tagName.toLowerCase() == 'label'){
        var StdName = this.getAttribute('Std_Id');
    }
}

参考文献:

于 2012-06-03T12:34:20.700 に答える
2

使用getAttribute:

var labels = $(this).children('div');
var StdId = this.children[0].getAttribute("Std_Id");

HTML5 仕様によると、カスタム属性は で始まる必要がdata-ありますが、ほとんどのブラウザーはそれを許容できます。

于 2012-06-03T12:40:43.720 に答える
1

attrメソッドをそのまま使用できますが、

var value = $('.AttList').attr('Std_Id');

編集

OK、実装のために、これ行う必要があります...

var value = $(this).find('.AttList').attr('Std_Id');

thisそれがそのdivまたはその親であると仮定しますdiv

于 2012-06-03T12:34:40.687 に答える
1

jQuery-Selector を使用して選択された要素を保存するには、次のようにします。

$labels = $('.BigDiv').find('label');

これで、jQuery の foreach ループを使用して各ラベルをループできます。

$.each($labels, function() {
    var std_id = $(this).attr('Std_Id');
    // do something with std_id
});
于 2012-06-03T12:36:43.313 に答える