0

我有一个使用 WordPress 设置 API 构建的表。表格输出如下:

<tr>
    <th scope="row"><label for="feedblitz_rss_link">FeedBlitz RSS URL:</label></th>
    <td><input class="regular-text" type="text" id="feedblitz_rss_link" name="aswfe_options[feedblitz_rss_link]" value="" />
    <br />
    <span class="description">Enter the URL to your Feedblitz RSS Feed.</span></td>
</tr>

在每个表格行中都有一个包含 ID 的表单域。我想获取该 ID 并将其分配给<tr>该行,以便该行看起来像这样:

<tr id="feedblitz_rss_link">
    <th scope="row"><label for="feedblitz_rss_link">FeedBlitz RSS URL:</label></th>
    <td><input class="regular-text" type="text" id="feedblitz_rss_link" name="aswfe_options[feedblitz_rss_link]" value="" />
    <br />
    <span class="description">Enter the URL to your Feedblitz RSS Feed.</span></td>
</tr>

我想这样做,以便我可以通过 jQuery 获取每个表格行并隐藏或显示所需的每一行。

== 更新 ==

由于@Mike 和@Dennis 使用以下代码,我现在有表为每个表行分配 dat-rel 属性:

$(".aswfe-admin .form-table tr input").each(function() {
    var id = $(this).attr("id");        
    $(this).parent().parent().attr("data-rel", id);
});

现在我似乎在获取每一行并隐藏它们时遇到了问题。我以为我可以使用这样的东西,但是这段代码隐藏了整个表格,而我只想隐藏具有特定data-rel属性的特定行。

$(".form-table tr").data("rel", "feedblitz_rss_link").hide();
4

3 回答 3

2
$("tr input").each(function() {
    var id = $(this).attr("id");        
    $(this).parent().parent().attr("data-feed-id", id);
});

请注意,此答案是根据提供的标记量身定制的,并假定它不会与您页面上的其他表格冲突。

您可以访问这些行并稍后通过

$("[data-feed-id]").each(function() {
     ...do stuff....
});

开始听起来像您要隐藏的行是众所周知的。你可以很容易地做到这一点(给定上面相同的标记)

$("#some_known_id").parent().parent().hide();

见小提琴@http ://jsfiddle.net/NWU5Q/

于 2013-06-03T01:09:52.247 回答
0

您可以tr通过多种方式操纵您的:

$('table tr:nth(0)').slideToggle();
$('table tr td').find('#feedblitz_rss_link').parent().slideToggle();
$('table tr td label').indexOf ("RSS URL") > -1
...

更新:或者你可以使用wordpress 钩子

于 2013-06-03T01:02:49.350 回答
0

工作 jsFiddle 演示

您正在隐藏语法无效的行。从一开始,我认为你有多个tr,所以使用 ID 不是一个好主意。让inputbyclass及其层次结构:

$('tr > th + td > .regular-text').each(function () {
    var id = $(this).attr('id');
    $(this).closest('tr').attr('data-id', id);
});

现在您要显示/隐藏tr元素(例如通过单击它):

$('tr[data-id]').on('click', function () {
    $(this).hide();
});
于 2013-06-03T03:10:18.940 回答