我想获得之前p标签的ID。
HTML:
<p class="getty" id="1" href="#">One</p>
<div class="edit">
<a>Two</a>
<a id="remove">Three</a>
</div>
jQuery的:
$('#remove').click(function(e) {
e.preventDefault();
var x = $(this).prev("p").attr('id');
alert(x);
});
它没有提供任何警报。我在哪里做错了?
答案 0 :(得分:1)
Prev只能获得同一级别的直接前一个元素,请查看以下解决方案 -
$('#remove').click(function(e) {
e.preventDefault();
var x = $(this).parent().prev("p").attr('id');
alert(x);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="getty" id="1" href="#">One</p>
<div class="edit"> <a>Two</a> <a id="remove">Three</a> </div>
答案 1 :(得分:1)
您可以使用.closest('p')函数选择父p标签
$('#remove').click(function(e) {
e.preventDefault();
var x = $(this).closest('p').attr('id');
x.remove();
});
答案 2 :(得分:1)
如果您使用respond_to do |format|
format.html
format.pdf {
html = render_to_string(:template => "show.html.erb")
kit = PDFKit.new(html)
temp = Tempfile.new("pdf_css_temp")
temp.write(Rails.application.assets['application.css'].to_s)
temp.close
kit.stylesheets << temp.path
send_data(kit.to_pdf, :filename => "test_pdf", :type => "application/pdf", :disposition => 'attachment')
temp.unlink
return
}
,则会尝试直接获取.prev()
的前一个元素。
您必须转到a
的{{1}},然后使用.parent()
。
a