访问div隐藏参数

时间:2012-05-24 12:28:33

标签: javascript jquery

我正在使用:

迭代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
});

3 个答案:

答案 0 :(得分: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>

后者适用于使用jQuery的data()方法获取/设置:

$(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();

参考文献:

答案 1 :(得分:0)

您的html代码无效:如果您的意思是

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

这将针对您的输入

$('#myDiv input[type="hidden"]')

答案 2 :(得分: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() method