JQuery如何访问divs <p>标签并附加它

ant*_*ant 1 jquery parent closest

你好我正在尝试的东西..我正在阅读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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

<p>DKK 75,-<p>
Run Code Online (Sandbox Code Playgroud)

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

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

instead of

$(this).closest("p").append(element_value + ",-");
Run Code Online (Sandbox Code Playgroud)

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

Pao*_*ino 5

如果您阅读最近()的文档,您将看到它只向上看,而不是侧向:

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

你可以这样做,<p>从输入中找到前一个:

$(this).prev("p").append(element_value + ",-");
Run Code Online (Sandbox Code Playgroud)

或者更明确一点:

$(this).closest("div.entry").find("p").append(element_value + ",-");
Run Code Online (Sandbox Code Playgroud)

然后,这将不依赖于<p>输入的哪一侧发生.