jquery获取值

 

<table border="1" bordercolor="black" cellspacing="0" align="center" cellpadding="5">
				<thead>
					<tr>
						<td>
							产品编号
						</td>
						<td>
							产品名称
						</td>
						<td>
							产品描述
						</td>
						<td>
							父类
						</td>
						<td>
							增加子类别
						</td>
						<td>
							编辑
						</td>
						<td>
							删除
						</td>
					</tr>
				</thead>
				<c:forEach items="${pageBean.queryResult.resultList}" var="productType">
					<tr class="productName">
						<td class="productTypeId">
							${productType.id }
						</td>
						<td class="productTypeName">
							${productType.name }
						</td>
						<td>
							${productType.note }
						</td>
						<td class="parentTypeId">
							<c:if test="${!empty productType.parentType}">${productType.parentType.name}</c:if>
						</td>
						<td>
							<a href="#dialog" name="addChildProductType">增加</a>
						</td>
						<td class="td">
							<input name="#update" type="button" value="编辑" />
						</td>
						<td>
							<a name="deleteProductType" href="controller/product/productType!deleteProductType.action?productType.id=${productType.id} ">删除</a>
						</td>
					</tr>
				</c:forEach>
			</table>

 在点击“编辑”按钮之后,我想获取“编辑”按钮相对应的那行:

 

<td class="parentTypeId">
							<c:if test="${!empty productType.parentType}">${productType.parentType.name}</c:if>
						</td>
 

里面的html文本值;我的写法是这样的:

 

var parentTypeName = $(this).parent().parent()
								.children(".parentTypeId").html();
						alert(parentTypeName);

 但是提示框显示的是null(我调试的时候是选择那些有值的),我觉得我的问题应该是这段javascript有问题。请朋友赐教。我的想法是这样的:$(this)得到的是

 

 

<input name="#update" type="button" value="编辑" />

 $(this).parent()得到的是

 

 

<td class="td">
							<input name="#update" type="button" value="编辑" />
						</td>

 $(this).parent.parent()得到的是

 

 

<tr class="productName">
						<td class="productTypeId">
							${productType.id }
						</td>
						<td class="productTypeName">
							${productType.name }
						</td>
						<td>
							${productType.note }
						</td>
						<td class="parentTypeId">
							<c:if test="${!empty productType.parentType}">${productType.parentType.name}</c:if>
						</td>
						<td>
							<a href="#dialog" name="addChildProductType">增加</a>
						</td>
						<td class="td">
							<input name="#update" type="button" value="编辑" />
						</td>
						<td>
							<a name="deleteProductType" href="controller/product/productType!deleteProductType.action?productType.id=${productType.id} ">删除</a>
						</td>
					</tr>

 

最后

 

 $(this).parent().parent()	.children(".parentTypeId").html();

 获得的是

 

 

<td class="parentTypeId">
							<c:if test="${!empty productType.parentType}">${productType.parentType.name}</c:if>
						</td>

 的节点值。这么想哪里有错?

 

 

解决这个问题的完整代码:

 

<div id="table">
			<table border="1" bordercolor="black" cellspacing="0" align="center" cellpadding="5">
				<thead>
					<tr>
						<td>
						</td>
						<td>
							产品编号
						</td>
						<td>
							产品名称
						</td>
						<td>
							产品描述
						</td>

						<td>
							父类名称
						</td>
						<td>
							增加子类别
						</td>
						<td>
							编辑
						</td>
						<td>
							删除
						</td>
					</tr>
				</thead>
				<c:forEach items="${pageBean.queryResult.resultList}" var="productType">
					<tr class="productName">
						<td class="parentTypeId">
							<c:if test="${!empty productType.parentType}">
								<input type="hidden" value="${productType.parentType.id}" />
							</c:if>
						</td>
						<td class="productTypeId">
							${productType.id }
						</td>
						<td class="productTypeName">
							${productType.name }
						</td>
						<td>
							${productType.note }
						</td>

						<td class="parentTypeName">
							<c:if test="${!empty productType.parentType}">${productType.parentType.name}</c:if>
						</td>
						<td>
							<input name="#add" type="button" value="添加"></input>
						</td>
						<td>
							<input name="#update" type="button" value="编辑" />
						</td>
						<td>
							<input name="#delete" type="button" value="删除" />
							<%--<a name="deleteProductType" href="controller/product/productType!deleteProductType.action?productType.id=${productType.id} ">删除</a>
						--%>
						</td>
					</tr>
				</c:forEach>
			</table>
		</div>

 

 

 

<div id="update" class="window">
			<img class="close" alt="close" src="/sports/images/greenAcross.gif">
			<form name="updateProductType" action="controller/product/productType!updateProductType.action" method="post">
				<table>
					<caption>
						添加产品子类型
					</caption>
					<tr>
						<td>
							产品父类型:
						</td>
						<td>
							<select name="select">

							</select>
						</td>
					</tr>
					<tr>
						<td>
							产品类型名称:
						</td>
						<td>
							<input id="productTypeName" type="text" name="productType.name">
						</td>
					</tr>
					<tr>
						<td>
							产品类型备注:
						</td>
						<td>
							<input id="productTypeNote" type="text" name="productType.note">
						</td>
					</tr>
					<tr>
						<td>
							<br />
							<input type="submit" name="" value="submit">
						</td>
						<td>
							<br />
							<input type="reset" name="" value="reset">
						</td>
					</tr>
				</table>
			</form>
		</div>
 

对应的jquery代码:

 

$('input[name=#update]').click(function(e) {
		var parentTypeId = $(this).parent().parent().children(".parentTypeId")
				.children().attr("value");
		var currentElement = $(this).parent().parent()
				.children(".parentTypeName");
		var parentTypeName = currentElement.html();
		var productTypeName = currentElement.prev().html();
		var productTypeNote = currentElement.prev().prev().html();
		// $("#productTypeName").attr("value", "cccccc");
		// $("#productTypeNote").attr("value", "dddddd");
		alert((productTypeName).toString());
		$("#productTypeName").attr("value", productTypeName);
		$("#productTypeNote").attr("value", "eeeeeee");
		alert(productTypeName);
		var id = $(this).attr('name');
		location(id);
		$(id).fadeIn(2000);

		$.ajax({
					type : "post",
					dataType : "json",
					url : "controller/product/productType!getIdAndName.action",
					success : function(data, textStatus) {
						var select = $("select[name=select]");
						var option = "";

						// var parentTypeName = $(this).parent().parent()
						// .children(".parentTypeId").html();
						// alert(parentTypeName);
						// var productType = eval("(" + data + ")");
						option += "<option value=\"" + parentTypeId + "\">"
								+ parentTypeName + "</option>";
						for (var i = 0; i < data.result; i++) {
							option += "<option value=\""
									+ data.rows[i].productId + "\">"
									+ data.rows[i].productTypeName
									+ "</option>";
						}
						select.html(option);
					},
					complete : function(XMLHttpRequest, textStatus) {
						// HideLoading();
						// alert("complete");
					},
					error : function() {
						alert("error");
					}
				});
	});
 但是新问题来了:上面代码的这句并不能正确赋值,截图在附件

你可能感兴趣的:(jquery,C++,c,Ajax,C#)