无法保存对象并传递给另一个方法

时间:2016-08-09 19:06:45

标签: jquery

我在表格中有以下代码:

<tr class="16225">
    <td>smtp</td>
    <td>test@gmail.com</td>
    <td class="grp_memberships">&nbsp;</td>
    <td><a href''="">Edit</a> | <a href="">Delete</a></td>
</tr>

在呈现页面之后,我正在进行ajax调用以获取“grp_memberships”单元格的值。 我在<TR>上的类值实际上是一个ID。我想根据此ID查找/匹配行,然后填充grp_memberships <td>的值

我可以在控制台窗口中找到使用它的行:

$('.16225')

返回整行。但我不知道如何使用值...

更新<TD>

这是我现在拥有的jquery代码:

  $.each(groups, function(i, e) {                       
        console.log(e['id'] + '-' + e['grp']);
    })
  

E [ 'ID']

包含应与

匹配的类的值

感谢。

编辑1

在控制台窗口中,我尝试了这个:

 $('.16225 .grp_memberships').text('hello');

这为我返回并更新了正确的单元格。

所以我尝试将代码更新为:

  $.each(groups, function(i, e) {                       
        $('.' + e['id'] + ' .grp_memberships') = e['name'];
    })

输出以下错误:

Uncaught ReferenceError: Invalid left-hand side in assignment

我也试过这个:

         $("'." + e['id'] + " .grp_memberships'") = e['name'];

但是会返回此错误:

  

捕获错误:语法错误,无法识别的表达式:'。。16233   .grp_memberships'

编辑2:

最新代码:

$.each(groups, function(i, e) {                      
      alert(e['name']); 
      $('.' + e['id'] + ' .grp_memberships').text(e['name']);
 });    

这将显示一个带有各种名称的消息框2次...但不更新表中的相应行。 :(

2 个答案:

答案 0 :(得分:0)

如果您的目标是将内容插入DOM中的元素,则无法使用等号进行设置。如果您特别想添加文字,可以使用.text()功能;如果您想添加元素等,可以使用.html()。(这些不是唯一的方法,它们是&#39;只是一些最常见的。)

例如,这应该适用于您的代码:

$("'." + e['id'] + " .grp_memberships'").text(e['name']);

答案 1 :(得分:0)

建议使用数组到json,你的代码是手工操作是没有自动化的,你应该学习DOM(重要)。

查看示例代码:

$(document).ready(function() {
	var array = [];
	for (x = 0; x < $('table tr').length; x++) {
		var id = $('table tr:nth('+x+')').attr('class');
		var object= [id];
		for (y = 0; y < $('tr:nth('+x+') td').length; y++) { 
			object.push($('tr:nth('+x+') td:nth('+y+')').text());
		}
		array.push({object});
	}
	console.log(array);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<body>
	<table border="1">
		<tr class="16225">
			<td>smtp</td>
			<td>test@gmail.com</td>
			<td class="grp_memberships">&nbsp;</td>
			<td><a href="">Edit</a> | <a href="">Delete</a></td> <!-- removed href'' -->
		</tr>
		<tr class="16221">
			<td>http</td>
			<td>http@gmail.com</td>
			<td class="grp_memberships">&nbsp;</td>
			<td><a href="">Edit</a> | <a href="">Delete</a></td> <!-- removed href'' -->
		</tr>
		<tr class="16224">
			<td>ftp</td>
			<td>ftp@gmail.com</td>
			<td class="grp_memberships">&nbsp;</td>
			<td><a href="">Edit</a> | <a href="">Delete</a></td> <!-- removed href'' -->
		</tr>
		<tr class="16227">
			<td>mms</td>
			<td>mms@gmail.com</td>
			<td class="grp_memberships">&nbsp;</td>
			<td><a href="">Edit</a> | <a href="">Delete</a></td> <!-- removed href'' -->
		</tr>
		<tr class="16233">
			<td>pop</td>
			<td>pop@gmail.com</td>
			<td class="grp_memberships">&nbsp;</td>
			<td><a href="">Edit</a> | <a href="">Delete</a></td> <!-- removed href'' -->
		</tr>
	</table>
</body>

注意:Sry bad english