我正在使用jQuery来获取锚标记及其内容,但是我使用的方法还抓取了锚标记旁边的span标记。我只想获取锚标签。我该怎么办?
myinput = "5 + 2j"
mycleaninput = myinput.replace(" ","")
myoutput = complex(mycleaninput) * (3 + 12j)
print(myoutput)
$('.chosen').each(function(){
var cur = $(this).html();
encodeURIComponent(cur);
$('#custom_crumb').append(cur);
});
答案 0 :(得分:2)
如果要使用锚的内部 HTML,则:
var cur = $(this).find("a").html();
如果您想要它的外部 HTML,则:
var cur = $(this).find("a").prop("outerHTML");
outerHTML
版本的实时示例,因为我认为这就是您想要的:
$('.chosen').each(function(){
var cur = $(this).find("a").prop("outerHTML");
$('#custom_crumb').append(cur);
});
<ul>
<li class="chosen" style="display: none;">
<a rel="nofollow" href="http://website.co.uk/shop/?filter_colour=amber">Amber</a>
<span class="count">(14)</span>
</li>
</ul>
<div id="custom_crumb"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
请注意,我删除了encodeURIComponent(cur);
行,因为您没有使用返回值,所以它没有任何作用。如果出于某种原因(似乎很奇怪)想要添加它,请添加回去,但要使用cur = encodeURIComponent(cur);
。
答案 1 :(得分:0)
您需要先找到a
标签。
$('.chosen').each(function(){
var cur = $(this).find('a').html();
encodeURIComponent(cur);
$('#custom_crumb').append(cur);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="chosen" style="display: none;">
<a rel="nofollow" href="http://website.co.uk/shop/?filter_colour=amber">Amber</a>
<span class="count">(14)</span>
</li>
</ul>
<div id="custom_crumb"></div>
答案 2 :(得分:0)
您可以直接在选择器中选择a
元素:
$('.chosen a').each(function(){
var cur = $(this).html();
$('#custom_crumb').append(cur);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="chosen" style="display: none;">
<a rel="nofollow" href="http://website.co.uk/shop/?filter_colour=amber">Amber</a>
<span class="count">(14)</span>
</li>
<div id="custom_crumb"></div>
答案 3 :(得分:0)
使用.first()。
$('.chosen > a').first()
注意:它将使用.html()返回元素本身以获取内容(HTML)。 即使您在.chosen中具有多个锚点,它也将起作用。 它将选择第一个锚标记。
答案 4 :(得分:0)
您可以使用$('.chosen a')
,它将在类chosen
内选择锚标记
$('.chosen a').each(function(){
var cur = $(this).html();
encodeURIComponent(cur);
$('#custom_crumb').append(cur);
});
答案 5 :(得分:0)
您需要在
中指定元素$(this).html()
在此li中,它具有两个元素范围和a。对于特定元素,您需要告诉jquery我只需要一个元素。
$(this).find('a')。html()
$('.chosen').each(function() {
var cur = $(this).find('a').eq(0).html();
$('#custom_crumb').append(cur);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="chosen" style="display: none;">
<a rel="nofollow" href="http://website.co.uk/shop/?filter_colour=amber">Amber</a>
<span class="count">(14)</span>
</li>
<div id="custom_crumb"></div>
答案 6 :(得分:0)
所有答案都忽略了一个事实,即.html()
显然是您要执行的操作的错误函数。
您可以选择锚标记并将其附加到某个位置,也可以对其进行克隆。两种方法都比读取和重新解析html的性能高得多。
var crumb = $('#custom_crumb');
$('.chosen').each(function(){
var anchor = $(this).find('a').first();
crumb.append(anchor);
// or, to keep the a in the <li>
crumb.append(anchor.clone());
});
答案 7 :(得分:-1)
尝试$(".chosen > a")
,如果要获取内容,请尝试使用Jquery方法