我似乎正在为自己挖掘更深入的洞,但我现在决心解决这个问题。
我正在获取元素和测试以确定他们是否有孩子,在这里一些非常聪明的人的帮助下我已经走得那么远了。现在我需要让父母的文字减去儿童的文字。所以,当我获得信息元素时,文本是信息信用lorem ipsum,我只需要信息。
<ul id="navMenu">
<li id="home"><a href="#home" rel="ajax">Home</a></li>
<li id="information"><a href="#information" rel="ajax">Information</a>
<ul>
<li><a href="#credits" rel="ajax">Credits</a></li>
<li><a href="#lorem_ipsum" rel="ajax">Lorem Ipsum</a></li>
</ul>
</li>
<li id="faqs"><a href="#faqs" rel="ajax">FAQs</a></li>
<li id="contact"><a href="#contact" rel="ajax">Contact</a></li>
</ul>
这是jquery / javascript:
$('#test').load('../common.html #navMenu', function()
{
$.each($("#test #navMenu li"), function(i,v)
{
if ($(v).find('li').length)
{
var x = $(v).clone().children().remove().end().text();
alert('This Element('+x+') has children');
}
});
});
上面的脚本返回信息元素的空格。
答案 0 :(得分:3)
您是否只想要<a>
元素的文本?:
if ($(v).find('li').length) {
$(v).find('> a').text();
}
答案 1 :(得分:1)
这将仅提供信息“信息”。
$('#test').load('../common.html #navMenu', function()
{
$.each($("#test #navMenu li"), function(i,v)
{
var information = $(this).find('a').first().text();
if ($(v).find('li').length)
{
var x = $(v).clone().children().remove().end().text();
alert('This Element('+x+') has children');
}
});
});
我猜您可以使用$(v)
代替$(this)
,但为了便于阅读,我更喜欢使用$(this)