2

我有几个标签,这是代码

<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();

要获取详细信息,但是标签的详细信息即将到来,我想获取跨度标签的标签,即“p”标签的html。

编辑X:我想获取输入类型=“文本”中的数据,这可能吗?

编辑 X2:我现在正在使用它

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

它往往会起作用,好吧,我想做的最后一件事是,在每个细节后放置空间,例如在运输重量后放置空间,在价格后放置空间等等。

4

5 回答 5

4

How to get the parent's parent

To get the parent's parent you can simply call the parent() method on the parent:

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

Alternatively you can use jQuery's closest() method:

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

Here's a JSFiddle demo which shows both in use when initially targeting i.icon-circle.

To get the text, you can then simply call jQuery's text() method:

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

How to get the text input's value

As per an edit to the question, to pull the value of the text input you can either use:

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

Or, as the input has an id of "a1" (which is always unique), you can just use:

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

How to put a space between the values

As per a further edit to the question, to put a space between the result you'd simply add it in using ... + " " + ..., like so:

...closest('p').text() + " " + $(this).closest('p')...
于 2013-10-08T08:19:43.960 回答
1

You can use .closest() along with .outerHTML if you want the html including <p>...</p>

$(this).closest('p')[0].outerHTML
于 2013-10-08T08:21:52.470 回答
1

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

于 2013-10-08T08:24:43.093 回答
1

要知道父母是谁,您需要告诉我们什么是$(this)。由于您没有在这里获取代码来获取编辑字段的值。

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

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

编辑 现在我们知道 &(this) 是谁...... :-) 我会和兄弟姐妹一起去,而不是像你一样的父母。在这种情况下,如果您使用 parent,您将不得不进行一些遍历,所以为什么不直接从当前位置进行遍历。

再编辑 一个解决方案已被接受,但这是我最后一次尝试。prev() 方法会更方便;像这样:

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

更新的工作小提琴

于 2013-10-08T08:43:54.640 回答
1

尝试这个

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

或者

$(this).parents('p').find('input:text').val();
于 2013-10-08T08:37:12.010 回答