每个jQuery函数

时间:2013-01-24 21:38:02

标签: jquery each

在一份文件中,我有大约25个DIV,其中包含各种名称的表格。 DIV都有相同的类名,看起来像这样:

<div class="swoop" style="display:none">
  <form name="myFormXYZ" method="post">
    <input name="caption" type="hidden" value="19">
  </form>
</div>

我想编写jQuery代码,它将使用“swoop”类检查所有DIV,如果任何DIV包含名为“caption”的输入字段,其值为x,则应设置这些DIV的显示属性“阻止”。 x将是1到1000之间的整数。

到目前为止,我已经想出了这个:

$('.swoop').each(function() {
    var capt = $( ? ? ? ).attr('value()');
    if (capt == x) {$(this).css.(display','block')}
});

jQuery函数是否可以迭代显示设置为none的DIV?

6 个答案:

答案 0 :(得分:7)

另一种方式:

$('.swoop').has('input[name=caption][value=' + x + ']').show();

这使用attribute selectors代替查找具有特定值的输入元素。 .has过滤那些与传递的选择器匹配的子元素的元素,而.show应该是不言自明的。

答案 1 :(得分:1)

你需要:

$('.swoop').each(function() {
    var capt = $('input[name=caption]', this).val();
    if (capt == x) {$(this).css.('display','block')}
});

答案 2 :(得分:1)

var someInt = 7;    
$('.swoop').each(function() {
    var capt = $('input[name=caption]', this).val());
    if (capt == someInt) {$(this).css('display','block');}
});

答案 3 :(得分:1)

$('.swoop input[name="caption"]').each(function() {
    var capt = $(this).val();
    if (capt == x) {
        $(this).closest('.swoop').css('display','block')
    }
});

答案 4 :(得分:0)

是的,即使隐藏了元素,jQuery也可以访问它们。

使用当前项作为jQuery调用中的上下文来查找其中的元素。使用val方法获取输入的值,并且您希望解析该值以将字符串转换为数字:

var capt = parseInt($('input[name=caption]', this).val(), 10);
if (capt == x) { $(this).css('display','block'); }

答案 5 :(得分:0)

var v = 19;    
$('.swoop input[name=caption]').each(function () {
            var capt = $(this).attr('value');
            if (capt == v) { 
            $(this).parents("div").andSelf().css('display', 'block');
            $(this).attr({ type: '' }); }
        });