gpt4 book ai didi

JQuery TR :not to skip 2 trs with class names

转载 作者:行者123 更新时间:2023-12-01 02:35:54 24 4
gpt4 key购买 nike

我想跳过表中 2 个不同类别的 2 个 tr。

第一个 tr 类是 .gridTitleRow ,第二个 tr 类是 .gridSpan 。如何在下面的语法中跳过这些?

$.each($(".gridTable tr:not(.gridTitleRow)"), function(a, b){});

已编辑我正在使用如下所示的每个

$("#gridBtn").live("click", function (e) {
e.preventDefault();
var indexArraay = [];
var flag = false;
$.each($(".gridTable tr:not(.gridTitleRow)"), function(a, b){

var id = $("input.idField", b).val();
var order = $("input[id='index']", b).val();
var active = $("input[id='activeCb']", b).attr("checked");
var deleteRow = $("input[id='deleteCb']", b).attr("checked");

(deleteRow == true) ? flag = true : null;

indexArraay.push({
"id": id,
"index": order,
"active": active,
"delete": deleteRow
})
});

if (flag == true)
{
$("#dialog:ui-dialog").dialog("destroy");

var text = "Alert: Deleting footer Prent menu will delete all submenus and assigned pages to it.";
$('<div title="Confirmation:">' + text + '</div>').dialog({
height: 'auto',
width: 350,
modal: true,
resizable: false,
buttons: {
Cancel: function () {
$(this).dialog("close");
},
Confirm: function () {
$(this).dialog("close");
ProcessGrid(indexArraay);
ReloadGrid();
}
}
});
}else{
ProcessGrid(indexArraay);
//ReloadGrid();
}

}); //End of gridBtn

表格

<script id="gridTemplate" type="text/x-jQuery-tmpl">
<tr class="gridRow">
<td class="gridSpan" colspan="5">${$data[0].Title}</td>
</tr>
{{tmpl($data) "#cellTemplate"}}
</script>
<script id="cellTemplate" type="text/x-jQuery-tmpl">
<tr class="gridRow">
<td class="cellTd ">
<input type="checkbox" id="deleteCb" />
<input type="hidden" id="Id_ + ${num}" class="idField" value="${Id}" />
</td>
<td class="cellTd">
<input id="index" name="index" class="numberField" type="text" value="${IndexOrder}" />
</td>
<td class="cellTd">${DisplayName}</td>
<td class="cellTd ">${UrlName}</td>
<td class="cellTd ">
<input type="checkbox" id="activeCb" {{if Active}} checked{{/if}} />
</td>
</tr>
</script>

<span class="instructions">Only numeric value is allowed in IndexOrder textbox.</span>
<div class="gridDiv">
<table class="gridTable" cellspacing="0" cellpadding="0">
<tbody>
<tr class="gridTitleRow">
<td class="iconLink width36">Delete</td>
<td class="iconLink width60">Sort Order</td>
<td class="iconLink widthAuto">Display Name</td>
<td class="iconLink widthAuto">Url Name</td>
<td class="iconLink widthAuto">Active</td>
</tr>


</tbody>
</table>

最佳答案

$.each($(".gridTable tr:not(.gridTitleRow, .gridSpan)"), function(a, b){});

在选择器中,“,”类似于“or”。 等等 - 它就像“and”,但因为这里的选择器位于“not()”子句中,所以它是“not this one and not that one”,就像“not (this one or that one)” . 我想我可能会稍微阐述一下这一点:-)

编辑 - 不,我说服自己这又是“或”。需要咖啡。

再次编辑 - 有几件事:

  • 当第一个对象已经是 jQuery 对象时,没有理由调用“$.each()”:

    $(".gridTable tr:not(.gridTitleRow, .gridSpan)").each(function(i, elem) {
  • 按“id”值搜索时,没有理由使用属性选择器,也没有理由使用上下文,因为“id”值必须是唯一的。使用“#id”:

    var order = $('#index');
  • 再次请注意,对页面上的多个元素使用相同的“id”值是无效的。如果您在许多表行上使用相同的“id”,那么这是错误的,您必须更改它。

  • jQuery 团队已弃用表单 $(selector, base)并更喜欢 $(base).find(selector) 的形式。在内部,库总是执行该转换,因此您不妨省去它的麻烦:

    var deleteRow = $(b).find('#deleteCb');
  • 根本不清楚“flag”的用途,但您可能忘记声明它。也许它是一个全局变量。

  • 您的评论说“空 tr 正在传递未定义”,但我不知道这意味着什么。如果选择器没有找到<tr>元素,“each”循环根本不会发生。如果您准确描述未定义的内容,可能会有所帮助。

关于JQuery TR :not to skip 2 trs with class names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com