admin管理员组文章数量:1022580
I have the following HTML:
<div class="pane">
<h3>
<input type=hidden id="m_id" value="{$ment.id}">
<label id="m_name" onclick="this.style.display='none';document.getElementById('m_name_edit_view').style.display='';document.getElementById('m_name_edit').value=this.innerHTML;">{$ment.writer_name}</label>
<div id="m_name_edit_view" style="display:none;">
<input type=text id="m_name_edit" value="{$ment.writer_name}">
<button onclick="this.parentNode.style.display='none';document.getElementById('m_name').innerHTML=getElementById('m_name_edit').value;document.getElementById('m_name').style.display='';">حفظ</button>
</div>
</h3>
<p>
<label id="m_content" onclick="this.style.display='none';document.getElementById('m_content_edit_view').style.display='';document.getElementById('m_content_edit').value=this.innerHTML;">{$mentment}</label>
<div id="m_content_edit_view" style="display:none;">
<textarea type=text id="m_content_edit">{$mentment}</textarea>
<button onclick="this.parentNode.style.display='none';document.getElementById('m_content').innerHTML=getElementById('m_content_edit').value;document.getElementById('m_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>
and the following jQuery (I'm bad at jQuery)
jQuery(function(){
$(".pane:even").addClass("alt");
$(".pane .btn-delete").click(function(){
var x=SOMETHING;
$(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast")
.animate({ opacity: "hide" }, "slow")
return false;
}); ..... etc
In the var x=SOMETHING;
, I want to be able to get the value of the input
box with ID of m_id
in that pane. Is it somehow possible?
Thank you.
I have the following HTML:
<div class="pane">
<h3>
<input type=hidden id="m_id" value="{$ment.id}">
<label id="m_name" onclick="this.style.display='none';document.getElementById('m_name_edit_view').style.display='';document.getElementById('m_name_edit').value=this.innerHTML;">{$ment.writer_name}</label>
<div id="m_name_edit_view" style="display:none;">
<input type=text id="m_name_edit" value="{$ment.writer_name}">
<button onclick="this.parentNode.style.display='none';document.getElementById('m_name').innerHTML=getElementById('m_name_edit').value;document.getElementById('m_name').style.display='';">حفظ</button>
</div>
</h3>
<p>
<label id="m_content" onclick="this.style.display='none';document.getElementById('m_content_edit_view').style.display='';document.getElementById('m_content_edit').value=this.innerHTML;">{$ment.ment}</label>
<div id="m_content_edit_view" style="display:none;">
<textarea type=text id="m_content_edit">{$ment.ment}</textarea>
<button onclick="this.parentNode.style.display='none';document.getElementById('m_content').innerHTML=getElementById('m_content_edit').value;document.getElementById('m_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>
and the following jQuery (I'm bad at jQuery)
jQuery(function(){
$(".pane:even").addClass("alt");
$(".pane .btn-delete").click(function(){
var x=SOMETHING;
$(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast")
.animate({ opacity: "hide" }, "slow")
return false;
}); ..... etc
In the var x=SOMETHING;
, I want to be able to get the value of the input
box with ID of m_id
in that pane. Is it somehow possible?
Thank you.
Share Improve this question edited Nov 20, 2010 at 17:24 Gert Grenander 17.1k6 gold badges41 silver badges43 bronze badges asked Nov 20, 2010 at 17:18 TeAmErTeAmEr 4,76913 gold badges66 silver badges108 bronze badges 1- 1 Do you have multiple panes? That what it sounds like...and ID attributes must be unique on a document. – Nick Craver Commented Nov 20, 2010 at 17:20
2 Answers
Reset to default 4You can get the input by using .closest()
to get to the <div class="pane">
then .find()
the input inside, like this:
$(".pane .btn-delete").click(function(){
var x = $(this).closest(".pane").find(".m_id").val();
//use x
//animations...
});
Note the change of id
to class
to be valid for multiple panes, your <input>
should look like this:
<input type="hidden" class="m_id" value="{$ment.id}">
var x = $("#m_id").val();
EDIT:
actually, you don't even need to select it by ID: you could just use
var x = $( "input[type=hidden]", $( this ).parents(".pane") ).val();
this would solve the problem if you have several fragments of code like that.
I have the following HTML:
<div class="pane">
<h3>
<input type=hidden id="m_id" value="{$ment.id}">
<label id="m_name" onclick="this.style.display='none';document.getElementById('m_name_edit_view').style.display='';document.getElementById('m_name_edit').value=this.innerHTML;">{$ment.writer_name}</label>
<div id="m_name_edit_view" style="display:none;">
<input type=text id="m_name_edit" value="{$ment.writer_name}">
<button onclick="this.parentNode.style.display='none';document.getElementById('m_name').innerHTML=getElementById('m_name_edit').value;document.getElementById('m_name').style.display='';">حفظ</button>
</div>
</h3>
<p>
<label id="m_content" onclick="this.style.display='none';document.getElementById('m_content_edit_view').style.display='';document.getElementById('m_content_edit').value=this.innerHTML;">{$mentment}</label>
<div id="m_content_edit_view" style="display:none;">
<textarea type=text id="m_content_edit">{$mentment}</textarea>
<button onclick="this.parentNode.style.display='none';document.getElementById('m_content').innerHTML=getElementById('m_content_edit').value;document.getElementById('m_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>
and the following jQuery (I'm bad at jQuery)
jQuery(function(){
$(".pane:even").addClass("alt");
$(".pane .btn-delete").click(function(){
var x=SOMETHING;
$(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast")
.animate({ opacity: "hide" }, "slow")
return false;
}); ..... etc
In the var x=SOMETHING;
, I want to be able to get the value of the input
box with ID of m_id
in that pane. Is it somehow possible?
Thank you.
I have the following HTML:
<div class="pane">
<h3>
<input type=hidden id="m_id" value="{$ment.id}">
<label id="m_name" onclick="this.style.display='none';document.getElementById('m_name_edit_view').style.display='';document.getElementById('m_name_edit').value=this.innerHTML;">{$ment.writer_name}</label>
<div id="m_name_edit_view" style="display:none;">
<input type=text id="m_name_edit" value="{$ment.writer_name}">
<button onclick="this.parentNode.style.display='none';document.getElementById('m_name').innerHTML=getElementById('m_name_edit').value;document.getElementById('m_name').style.display='';">حفظ</button>
</div>
</h3>
<p>
<label id="m_content" onclick="this.style.display='none';document.getElementById('m_content_edit_view').style.display='';document.getElementById('m_content_edit').value=this.innerHTML;">{$ment.ment}</label>
<div id="m_content_edit_view" style="display:none;">
<textarea type=text id="m_content_edit">{$ment.ment}</textarea>
<button onclick="this.parentNode.style.display='none';document.getElementById('m_content').innerHTML=getElementById('m_content_edit').value;document.getElementById('m_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>
and the following jQuery (I'm bad at jQuery)
jQuery(function(){
$(".pane:even").addClass("alt");
$(".pane .btn-delete").click(function(){
var x=SOMETHING;
$(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast")
.animate({ opacity: "hide" }, "slow")
return false;
}); ..... etc
In the var x=SOMETHING;
, I want to be able to get the value of the input
box with ID of m_id
in that pane. Is it somehow possible?
Thank you.
Share Improve this question edited Nov 20, 2010 at 17:24 Gert Grenander 17.1k6 gold badges41 silver badges43 bronze badges asked Nov 20, 2010 at 17:18 TeAmErTeAmEr 4,76913 gold badges66 silver badges108 bronze badges 1- 1 Do you have multiple panes? That what it sounds like...and ID attributes must be unique on a document. – Nick Craver Commented Nov 20, 2010 at 17:20
2 Answers
Reset to default 4You can get the input by using .closest()
to get to the <div class="pane">
then .find()
the input inside, like this:
$(".pane .btn-delete").click(function(){
var x = $(this).closest(".pane").find(".m_id").val();
//use x
//animations...
});
Note the change of id
to class
to be valid for multiple panes, your <input>
should look like this:
<input type="hidden" class="m_id" value="{$ment.id}">
var x = $("#m_id").val();
EDIT:
actually, you don't even need to select it by ID: you could just use
var x = $( "input[type=hidden]", $( this ).parents(".pane") ).val();
this would solve the problem if you have several fragments of code like that.
本文标签: javascriptjQuery get child value by IDStack Overflow
版权声明:本文标题:javascript - jQuery get child value by ID - Stack Overflow 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/questions/1745572026a2156791.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论