在jquery中获取Parent的父HTML

时间:2013-10-08 08:18:12

标签: jquery html

我有几个标签,这是代码

<p class="post-meta-ab"><span><a href="#">Diamond Burs set of 30 pcs A-24</a></span>

    <br /><span><i class="icon-circle"></i>Details: Diamond Burs set of 30 pcs very useful assorted shapes</span>

    <br /> <span><i class="icon-circle"></i>Shipping Weight: 100 gms</span>

    <br /><span><i class="icon-circle"></i>Price: &#8364; 2.50</span>

    <br /> <span><i class="icon-circle"></i>Quantity: <input type="text" style="width:20px" maxlength="100" name="a1" id="a1" />
                        <input type="submit" value="Add" style="margin-top:-8px" class="btn btn-danger" name="asubmit" id="a1sub" /></span>

</p>

我的问题是我正在使用

var productname = $(this).parent().html();

获取详细信息,但标签的详细信息即将出现,我想获得span标签的标签,即“p”标签的html。

编辑X:我想获取输入类型=“text”内的数据是否可能?

编辑X2:我现在正在使用

    $(this).parent().parent().text()+$(this).parents('p').find('input:text').val()

它倾向于工作,好吧我要做的最后一件事是,在每个细节之后放置空间,例如在发货重量后放置空间,在价格之后放置空间等等。

5 个答案:

答案 0 :(得分:4)

如何获取父母的父母

要获取父级的父级,您只需在父级上调用parent()方法:

$(this).parent().parent();

或者,您可以使用jQuery's closest() method

$(this).closest('p');

以下是JSFiddle demo,其中显示了最初定位i.icon-circle时的使用情况。

要获取文字,您只需拨打jQuery's text() method

即可
$(this).closest('p').text();

如何获取文本输入的值

根据问题的编辑,要提取文本输入的值,您可以使用:

$(this).closest('p').find('input[type="text"]').val();

或者,由于输入的id为“a1”(始终是唯一的),您可以使用:

$('#a1').val();

如何在值之间放置空格

根据对问题的进一步修改,要在结果之间添加空格,只需使用... + " " + ...添加空格,就像这样:

...closest('p').text() + " " + $(this).closest('p')...

答案 1 :(得分:1)

如果您希望html包含<p>...</p>

,则可以将.closest().outerHTML一起使用
$(this).closest('p')[0].outerHTML

答案 2 :(得分:1)

尝试使用$(this).parent().parent().text();

答案 3 :(得分:1)

试试这个

$(this).closest('p').find('input:text').val();

$(this).parents('p').find('input:text').val();

答案 4 :(得分:1)

要了解父母是谁或不是,您需要告诉我们什么是 $(this)。由于您没有在此处获取代码以获取编辑字段的值。

alert($(".post-meta-ab").find("#a1").attr("value"));

http://fiddle.jshell.net/hYhT6/

修改 现在我们知道谁和(这)是...... :-)我会和你的sieblings一起而不是父母。在这种情况下,如果你使用父母,你将不得不做一些遍历,所以为什么不直接从当前位置。

再修改一次 已经接受了一个解决方案,但这是我最后一次采取的解决方案。 prev()方法会更方便;像这样:

$("#a1sub").click(function() {
   alert($(this).prev().attr("value"));
})

updated working fiddle