0

我正在迭代divusing :

我可以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');
        */
    });

第一个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 选择器意味着您正在根据这些元素的类迭代许多元素,而您的类名id, 意味着您正在尝试基于id元素的 进行搜索。这可能是演示您的方法的伪代码,但请不要使用id. 这是完全有效的,但它非常令人困惑。尽管这只是我自己的,个人的,反对和回应。


已编辑,通过使用适当的选择器修改上述建议之一,提供更有针对性的答案:

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 回答