使用 jQuery 和 AJAX 填充表
Populate table using jQuery and AJAX
我有一个表格如下;
<tr class="nm" style="height: 30px">
<td style="width: 15px;"> </td>
<td class="section" colspan="5">mix</td>
<td style="width: 15px;"> </td>
</tr>
<tr>
<td class="prev" rowspan="2"><<</td>
<td class="content"> </td>
<td class="content"> </td>
<td class="content"> </td>
<td class="content"> </td>
<td class="content"> </td>
<td class="next" rowspan="2">>></td>
</tr>
<tr>
<td class="title" > </td>
<td class="title" > </td>
<td class="title" > </td>
<td class="title" > </td>
<td class="title" > </td>
</tr>
<tr class="nm" style="height: 30px">
<td style="width: 15px;"> </td>
<td class="section" colspan="5">cat</td>
<td style="width: 15px;"> </td>
</tr>
<tr>
<td class="prev" rowspan="2"><<</td>
<td class="content"> </td>
<td class="content"> </td>
<td class="content"> </td>
<td class="content"> </td>
<td class="content"> </td>
<td class="next" rowspan="2">>></td>
</tr>
<tr>
<td class="title" > </td>
<td class="title" > </td>
<td class="title" > </td>
<td class="title" > </td>
<td class="title" > </td>
</tr>
我正在使用带有jQuery的AJAX来填充表内容。我有一个脚本如下;
$('.next').click(function() {
var $nxt = $(this);
var $titlex = $nxt.prev().parent('.title');
$.ajax({
type: 'POST',
url: 'ajax.php',
data: 'id=2&dir=mix',
cache: false,
success: function(result3) {
$titlex.eq(index).html("XX");
},
});
});
它应该更改其相应行中class="title"
的内容。php 文件ajax.php
将返回一个数据数组,其中包含 5 个 JSON 成员。我想使用此方法填充相应行的标题单元格。不应更改另一行的内容。
我该怎么做?
首先,我认为您想更改:
var $titlex = $nxt.prev().parent('.title');
自
var $titlex = $nxt.parent().next().children('.title');
看小提琴
我简化了事情,不得不取出 ajax,但现在它选择了正确的元素,你能从那里拿走它吗?
你来了:
http://jsfiddle.net/fehays/QNXXf/
$(function() {
$('.next').click(function() {
var $nxt = $(this);
var $titlex = $nxt.parent().next().find('.title');
var result3 = {"data":["value1","value2","value3","value4","value5"]};
$.each(result3.data, function(index, value) {
$titlex.eq(index).html(value);
});
});
});
我删除了 ajax 调用,只使用了一个包含数组的 json 对象。 另请注意,用于查找 .title 元素的选择器是错误的。 需要像这样:
var $titlex = $nxt.parent().next().find('.title');
这是你想要的摆弄:
http://jsfiddle.net/g9ZZr/1/
$('.next').click(function() {
var $nxt = $(this);
var $titlex = $nxt.parent().next().children();
//The data you receive from your webservice.
var myArray = ['title1','title2','title3','title4','title5'];
$titlex.each(function(index,elem)
{
$(elem).html(myArray[index]);
});
});
$nxt.prev()
在我看来:
<td class="content"> </td>
然后:
.parent('.title')
没有给你任何东西,因为父级没有名为"title"的类(只是一个没有属性的 tr 标签(。
首先,假设您正在接收 JSON :
$.ajax({
type: 'POST',
url: 'ajax.php',
data: 'id=2&dir=mix',
cache: false,
dataType: "json",
success: function(result3) {
//your stuff here
},
});
对于您来说,提供一个包含要填充的标签索引的 ID,然后对 json 结果执行 for 循环不是更容易。在此之前,您可以通过访问正确的 tr 父节点并访问所有标题元素:
var trTitle = $(this).parent().next();
然后这是你的标题:
trTitle.find('.title');
我什么也没测试,但我认为这有效。
相关文章:
- 如何通过ajax刷新JSF填充的javascript变量
- 在更改名称时,使用ajax jsp在下拉菜单中填充多个文件夹的数据
- JSP AJAX jQuery填充表问题
- Jquery Selected plugin - 由 Ajax 动态填充列表
- 从填充了 AJAX 的下拉列表中获取控制器的操作方法中的值
- 自动填充动态字段上的 ajax 响应
- 使用 ajax 填充选择时没有选定的默认选项的问题
- 通过位置栏更改查询字符串,AJAX加载的菜单不会't在没有硬刷新的情况下重新填充
- 第二个Ajax调用已经填充了成功结果
- 从AJAX请求中获取JSON数据并用随机项填充
- Ajax-为php填充多个文本框
- "堆叠外空间”;同时通过AJAX调用填充jsTree
- 使用ajax填充ComboboxList客户端
- Javascript;Ajax——填充对象的更好方法
- 传递数据以填充在ajax Modal中加载的输入字段
- Jquery Chosen插件-通过Ajax动态填充列表时显示加载图标
- 设置 AJAX 调用和填充下拉列表
- 由 Ajax 在表单中填充的选择的 POSTvalue
- 控制器操作参数未从 AJAX 开机自检正确填充
- JQuery 自动完成缓存,未填充 ajax