获取以前标记的ID

时间:2015-12-24 07:17:50

标签: jquery html

我想获得之前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);

});

它没有提供任何警报。我在哪里做错了?

3 个答案:

答案 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