我有几个标签,这是代码
<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: € 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()
它倾向于工作,好吧我要做的最后一件事是,在每个细节之后放置空间,例如在发货重量后放置空间,在价格之后放置空间等等。
答案 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)
答案 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"));
})