0

私はdiv使用を繰り返しています:

div反復内でこれに隠されたパラメーターにアクセスできますか?

<DIV>
    <div id="myDiv" <input type="hidden" name="Language" value="English"> />
</DIV>

$('#myDiv div.id').each(function() {
    //access a hidden parameter of the current div here
});
4

3 に答える 3

2

次のいずれかの方法を使用できます。

$('#myDiv div.id').each(
    function(){
        parameter = $(this).attr('data-hidden-parameter');
        /* or:
        parameter = $(this).data('hidden-parameter');
        */
    });

1つ目parameter = $(this).attr('data-hidden-parameter')は、次の構造が必要です。

<div class="id" data-hidden-parameter="value"><!-- other stuff --></div>

後者data()はjQueryのメソッドを使用した取得/設定で機能しますが、

$(selector).data('hidden-parameter','value'); // sets
$(selector).data('hidden-parameter'); // gets

div.id要素の子である非表示の要素から、次のようなマークアップを使用してテキストまたはその他のコンテンツ/属性を取得することを意味する場合。

<div class="id">
    <input type="hidden" value="somethingOrOther" />
    <span style="display: none;">Some text in a hidden element</span>
</div>

次の方法でその値を取得できます。

$('#myDiv div.id').each(
    function(){
        parameter = $(this).find('input:hidden').val();
        /* or:
        parameter = $(this).find('span').text();
    });

jQueryセレクターは、それらの要素のクラスに基づいて複数の要素を反復処理していることを意味し、class-nameはid、代わりに要素のクラスに基づいて検索しようとしていることを意味しますid。これは、アプローチを示すための擬似コードである可能性がありますが、のクラス名は使用しないでくださいid。それは完全に有効ですが、ひどく混乱しています。これは単に私自身の、個人的な、異議と反応ですが。


上記の提案の1つを適切なセレクターで修正することにより、より的を絞った回答を提供するように編集しました。

var parameter = $('#myDiv').find('input:hidden[name="Language"]').val();

参照:

于 2012-05-24T12:35:46.737 に答える
0

あなたのhtmlコードは無効です:あなたが意味するなら

 <div id="myDiv"><input type="hidden" name="Language" value="English"></div>

これはあなたの入力をターゲットにします

$('#myDiv input[type="hidden"]')
于 2012-05-24T12:36:50.383 に答える
0

タグを別のタグ内に配置することはできません(または、HTMLまたはHTML互換のXHTMLでは、divで自己終了タグ構文を使用します)。あなたのHTMLは無効であり、エラー回復パーサーがそれを置くことに気を配っています。

あなたが持っていた場合、例えば:

<div id="myDiv">
    <div class="id">
        <input type="hidden" name="Language" value="English">
    </div>
</div>

次に、次のことができます。

$('#myDiv div.id').each(function(index, element) {
    var foo = $(element).find('input').val()
 });

…しかし、おそらくdata-*とjQueryのメソッドを使用したほうがよいでしょう。data()

于 2012-05-24T12:37:53.083 に答える