Javascript jQuery按ID获取子值
我有以下HTML: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
<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}">
<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”
以使其有效。