Javascript jQuery按ID获取子值

Javascript jQuery按ID获取子值,javascript,jquery,html,parent-child,Javascript,Jquery,Html,Parent Child,我有以下HTML: <div class="pane"> <h3> <input type=hidden id="comm_id" value="{$comment.id}"> <label id="comm_name" onclick="this.style.display='none';document.getElementById('comm_name_edit_view').style.display='';document.getEl

我有以下HTML:

<div class="pane">
 <h3>
  <input type=hidden id="comm_id" value="{$comment.id}">
  <label id="comm_name" onclick="this.style.display='none';document.getElementById('comm_name_edit_view').style.display='';document.getElementById('comm_name_edit').value=this.innerHTML;">{$comment.writer_name}</label>
  <div id="comm_name_edit_view" style="display:none;">
   <input type=text id="comm_name_edit" value="{$comment.writer_name}">&nbsp;
   <button onclick="this.parentNode.style.display='none';document.getElementById('comm_name').innerHTML=getElementById('comm_name_edit').value;document.getElementById('comm_name').style.display='';">حفظ</button>
  </div>
 </h3>

 <p>
  <label id="comm_content" onclick="this.style.display='none';document.getElementById('comm_content_edit_view').style.display='';document.getElementById('comm_content_edit').value=this.innerHTML;">{$comment.comment}</label>
  <div id="comm_content_edit_view" style="display:none;">
   <textarea type=text id="comm_content_edit">{$comment.comment}</textarea>
   <button onclick="this.parentNode.style.display='none';document.getElementById('comm_content').innerHTML=getElementById('comm_content_edit').value;document.getElementById('comm_content').style.display='';">حفظ</button>
  </div>
 </p>
 <p><a href="#" class="btn-delete">delete</a> | <a href="#" class="btn-approve">approve</a> | <a href="#" class="btn-spam">spam</a></p>
</div>
var x=SOMETHING中
,我希望能够获取该窗格中ID为
comm\u ID
输入
框的值。这有可能吗

多谢各位

var x = $("#comm_id").val();
编辑:

实际上,您甚至不需要按ID选择它:您可以使用

var x = $( "input[type=hidden]", $( this ).parents(".pane") ).val();
如果您有几个这样的代码片段,这将解决问题

编辑:

实际上,您甚至不需要按ID选择它:您可以使用

var x = $( "input[type=hidden]", $( this ).parents(".pane") ).val();

如果您有几个这样的代码片段,这将解决问题。

您可以通过使用获取
然后获取内部输入,如下所示:

$(".pane .btn-delete").click(function(){
  var x = $(this).closest(".pane").find(".comm_id").val(); 
  //use x
  //animations...
});
<input type="hidden" class="comm_id" value="{$comment.id}">
请注意,将
id
更改为
class
对于多个窗格有效,您的
应如下所示:

$(".pane .btn-delete").click(function(){
  var x = $(this).closest(".pane").find(".comm_id").val(); 
  //use x
  //animations...
});
<input type="hidden" class="comm_id" value="{$comment.id}">

您可以使用获取
然后获取内部输入,如下所示:

$(".pane .btn-delete").click(function(){
  var x = $(this).closest(".pane").find(".comm_id").val(); 
  //use x
  //animations...
});
<input type="hidden" class="comm_id" value="{$comment.id}">
请注意,将
id
更改为
class
对于多个窗格有效,您的
应如下所示:

$(".pane .btn-delete").click(function(){
  var x = $(this).closest(".pane").find(".comm_id").val(); 
  //use x
  //animations...
});
<input type="hidden" class="comm_id" value="{$comment.id}">


是否有多个窗格?这听起来像什么…和ID属性在文档上必须是唯一的。您有多个窗格吗?这听起来像什么…并且ID属性在文档上必须是唯一的。这不是一种有效的方法,因为你可以通过
$(“.pane:even”)
判断它在重复,所以
ID
在这里不合适-对于你的编辑来说,这也是无效的,因为
指的是单击的按钮,不是div…所以它找不到任何输入。@Nick Craver以何种方式告诉您没有一个
$(“.pane.btn delete”)
?无论如何编辑了我的答案来解释这一点。它表明有多个条带样式的窗格(
.alt
类),因此
id=“comm\u id”
不是唯一的…这是一个问题。对于您的编辑,
不在
.btn delete
锚内,因此找不到任何元素。这不是一种有效的方法,因为您可以通过
$(“.pane:even”)
判断它是否在重复,因此
id
在此处不合适-对于您的编辑,这也无效,由于
指的是单击的按钮,而不是div…因此它找不到任何输入。@Nick Craver以何种方式
$(“.pane:even”)
告诉您没有一个
$(“.pane.btn delete”)
?无论如何编辑了我的答案来解释这一点。它表明有多个条带样式的窗格(
.alt
类),因此
id=“comm\u id”
不是唯一的…这是一个问题。对于您的编辑,
不在
.btn delete
锚内,因此找不到任何元素。谢谢:),以及如何获取变量z=$(this.closest(.pane”).find(.comm_content”).something??是的,使用
.text()
那里:
$(this.closest(.pane”).find(.comm_content”).text()
,再次将其更改为
class=“comm\u content”
以使其有效。谢谢:),以及如何获取var z=$(this.closest(.pane)).find(.comm\u content”).something??是的,使用
.text()
那里:
$(this.closest(.pane”).find(.comm\u content”).text()
,再次将其更改为
class=“comm\u content”
以使其有效。