如何在jquery中返回行,其html标记值为null?

时间:2015-10-29 05:49:34

标签: jquery

如何检查表中所有行的value1值,并返回value1为null的所有行?

HTML

<?  foreach ( $timelineaspects as $a ) { ?>
        <table id ='transaction_events' class="table-condensed ">
            <tr class ="selector " value1= "<?=$a['value1']?>"  > 
                ..........................
            </tr>
<? } ?>

下面是jquery片段,但它没有返回空值行。

的jQuery

    var events = $("#transaction_events tr").each(function () {
        return $(this).find('value1').val() == ''
    }).closest("tr");
events.hide();

1 个答案:

答案 0 :(得分:1)

虽然value1 tr不是attr代码的原生属性,但您应使用jQuery的{​​{1}}方法。

您可以访问自定义属性的方式如下:

$('#transaction_events tr').each(
    function() {
        if ( $(this).attr('value1') === '' ) {
            // Do stuff here
        }
    }
);

此外,最好在data-属性之前使用前缀value1,以便符合HTML5标准。这样,tr标记应该变成:

<tr class ="selector " data-value1= "<?=$a['value1']?>"  >

并且属性调用它将变为:

if ( $(this).attr('data-value1') === '' ) {
    // Do stuff here
}

此外,如果您在脚本<?=$a['value1']?>上打印出null字符串,则必须将条件检查从=== ''更改为=== 'null'

最后,如果您使用data-前缀跟踪我的消息,您还可以使用方法.data()访问您的属性。在你的情况下将是这样的:

$('#transaction_events tr').each(
    function() {
        if ( $(this).data('value1') === '' ) {
            // Do stuff here
        }
    }
);

我想这是&#34的答案;我怎样才能返回行&#34;:

var nullRows = $( '#transaction_events tr[value1="null"]' );

// nullRows.remove();
// nullRows.hide();
// nullRows.attr('value1', 'new value');
// what ever you like ....

此外,根据我的预览代码,您可以通过执行以下修改来隐藏行:

$('#transaction_events tr').each(
    function() {
        if ( $(this).data('value1') === 'null' ) {
            $(this).hide();
        }
    }
);

这两个选项都应该有用。