1

您好,我正在尝试一些事情.. 我正在阅读一些论坛的 Jquery 遍历文档,该网站以前曾提出过与此主题相关的问题.. 没有一个真正回答我的问题,所以我会问.. 这是交易

  <div class="entry">
week
<span>some text</span>
<p>DKK</p>
<input type="radio" name="red<% Response.Write(counter); %>" id="radio2" value="75" />

</div>

所以我使用了一个while循环来创建这些,所以我不必手动复制粘贴它们.. asp生成它们..现在你看到它说DKK的p部分..现在为了让我不写一切手动我希望每个 divs , p 附加该 div 内的输入值,现在这是我对 Jquery 所做的

$(document).ready(function() {
     $("input").each(function () {
                 var element_value = $(this).val();
                 $(this).closest("p").append(element_value + ",-");
                  }); 
 }); 

所以我试图做的是遍历每个输入并收集它们的值,然后找到最接近的 p 标签并将其附加到它的值,现在上面这个例子的正确结果是

<p>DKK 75,-<p>

因为输入值是 75 并且它已包含在附加函数中,-也添加了,这段代码不起作用,但是如果我把

$(this).parents("div.entry").append(element_value + ",-");

instead of

$(this).closest("p").append(element_value + ",-");

出现了正确的结果,但不完全是我想要的结果.. 希望有人可以帮助我,谢谢

4

2 回答 2

5

如果您阅读了最接近()的文档,您会看到它只向上看,而不是横向看:

获取一组元素,其中包含与指定选择器匹配的最接近的父元素,包括起始元素。

您可以这样做以<p>从输入中找到上一个:

$(this).prev("p").append(element_value + ",-");

或者更明确的:

$(this).closest("div.entry").find("p").append(element_value + ",-");

这将不取决于<p>输入的哪一侧恰好在。

于 2009-09-09T16:05:20.987 回答
0

试试这个:

$(this).parents("div.entry").find('p:first').append(element_value + ",-");
于 2009-09-09T16:06:27.583 回答