私は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
});
私は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
});
次のいずれかの方法を使用できます。
$('#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();
参照:
あなたのhtml
コードは無効です:あなたが意味するなら
<div id="myDiv"><input type="hidden" name="Language" value="English"></div>
これはあなたの入力をターゲットにします
$('#myDiv input[type="hidden"]')
タグを別のタグ内に配置することはできません(または、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()