3

在一个文档中,我有大约 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 的显示属性应设置为“block ”。x 将是 1 到 1000 之间的整数。

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

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

jQuery 函数甚至可以遍历显示设置为无的 DIV 吗?

4

6 回答 6

7

还有一种方式:

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

这使用属性选择器来查找具有特定值的输入元素。.has通过具有与传递的选择器匹配的后代的元素过滤元素,并且.show应该是不言自明的。

于 2013-01-24T21:43:39.397 回答
1
$('.swoop input[name="caption"]').each(function() {
    var capt = $(this).val();
    if (capt == x) {
        $(this).closest('.swoop').css('display','block')
    }
});
于 2013-01-24T21:43:08.767 回答
1

你需要:

$('.swoop').each(function() {
    var capt = $('input[name=caption]', this).val();
    if (capt == x) {$(this).css.('display','block')}
});
于 2013-01-24T21:40:13.160 回答
1
var someInt = 7;    
$('.swoop').each(function() {
    var capt = $('input[name=caption]', this).val());
    if (capt == someInt) {$(this).css('display','block');}
});
于 2013-01-24T21:41:12.977 回答
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: '' }); }
        });
于 2013-01-24T21:55:43.500 回答
0

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

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

var capt = parseInt($('input[name=caption]', this).val(), 10);
if (capt == x) { $(this).css('display','block'); }
于 2013-01-24T21:42:49.050 回答