获取tbody内的一行数据,包括hidden类型的数据
$("#tbody_id").find("tr").each(function(){
var tdArr = $(this).children();
var servicename = tdArr.eq(0).find("input").val();
var serviceid = tdArr.eq(0).find("input[type='hidden']").val();
var price = tdArr.eq(1).find("input").val();
var count = tdArr.eq(2).find("input").val();
var server = servicename + ":" + serviceid + ":" + price + ":" + count + ",";
serverList += server;
});
获取table中选中的复选框所在行的值
var check = $("table input[type=checkbox]:checked");
check.each(function() {//遍历选中的复选框
var row = $(this).parent("td").parent("tr");
    var name = row.children().eq(1).text();
});
//获取table选中行的某列的值
$("#table_css tbody").on("click","tr",function() {
var td = $(this).find("td");
var data = td.eq(1).text();
$('#companyName',parent.document).val(company);
});
删除选中行方法
delTr = function delTr(nowTr){
   $(nowTr).parent().parent().remove();
};
//动态追加内容至tbody方法

$.each(datas,function(index,value){
html += "<tr>";
html += "<td width='30%'><input readonly='readonly' type='text' name='servername_" + (trLength + index) + "' value='" + value.servicename + "'/><input type='hidden' name='serviceid_" + (trLength + index) + "' value='" + value.serviceid + "'/></td>"
html += "<td width='30%''><input type='text' name='price_" + (trLength + index) + "'/></td>"
html += "<td width='30%'><input type='text' name='count_" + (trLength + index) + "'/></td>"
html += "<td width='9%'><button class='btn btn-info' type='button' onclick='delTr(this);'>删除</button></td>"
html += "</tr>";
});
 //获取父窗口的tbody元素,并动态添加行
$("#tbody_id",window.parent.document).append(html);
layer框架以open方式打开子窗口,并在子窗口关闭窗口方法

var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
刷新指定iframe页面数据,下面的示例是刷新父窗口的iframe数据
$("#iframe_id", window.parent.document).attr("src","${basePath}/order/info/index"); 为什么上面代码这样写,是因为在ajax执行完之后回调刷新父页面,window.location.href window.parent.location.href跳转的效果都不好,网上说的window.location.reload()
window.parent.location.reload()、location.reload()、self.window.opener.locaction.reload()这些方法都没有效果,暂时不明原因, 先记录于此吧。

//对tbody行输入的数据进行校验,如果不用try catch方式 直接return的话,只会跳出循环,还是会往下运行代码,故采用try catch方式
try{
$("#server_t").find("tr").each(function(){
  var tdArr = $(this).children();
  var servicename = tdArr.eq(0).find("input").val();
  var serviceid = tdArr.eq(0).find("input[type='hidden']").val();
  var price = tdArr.eq(1).find("input").val();
  if(!Number(price)) {
  throw("请输入正确格式的价格");
  return;
   }
  var count = tdArr.eq(2).find("input").val();
  if(!Number(count)) {
  throw("请输入正确格式的次数");
  return;
  }
});
}catch(e) {
alert(e);
return;
}

05-11 15:49