这是网站页面源的一部分。 我需要在最后一行抓住“crsEdId = 78”。使用JavaScript或JQuery。
我将使用mozilla Jetpack来完成任务。
我如何首先获取此代码? 和做什么(RegEx或JQuery)就可以了!?
<div class="tools-menu-body" id="tools-menu-div" style="display: none;">
<div id="menu_glider">
<div class="scroller">
<div class="content">
<div class="section" id="courses_menu">
<ul class="tools-menu-ul">
<li class="tools-menu-back"><a href="#main_menu" class="controls">back</a></li>
<li><a title="Advanced Software Engineering Lab: Open Source Development" href="../Courses/CourseEdition.aspx?crsEdId=78">CSEN 914 </a></li>
IT WorkED:
好吧,这是一个愚蠢的事情 - 我只需要将选择器放在点击功能中,不知道为什么我之前没想过它。 jetpack.statusBar.append({
html: "Boom<i>!</i>",
width: 45,
onReady: function(widget){
$(widget).click(function(){
var doc= jetpack.tabs.focused.contentDocument;
var link= doc.querySelector('#courses_menu > ul > li:nth-child(2) a');
var test= doc.getElementById('#container');
jetpack.notifications.show("Course is is = "+ link);
});
}
});
现在我需要在这个课程中获得所有href!菜单!你可以帮忙吗?
答案 0 :(得分:1)
也许我错过了一些东西,但是你不能只获得该元素的href,然后使用RegEx获得你想要的东西吗?
答案 1 :(得分:0)
在jQuery中:
var matches = $('a').attr('href').match(/crsEdId=(\d+)/);
答案 2 :(得分:0)
尝试:
alert($('#courses_menu').children('li').get(2).attr('href'));
答案 3 :(得分:0)
如果您在当前标签中找到了该文档,我相信Jetpack会给您:
var doc= jetpack.tabs.focused.contentDocument;
然后在简单的JS中,通过最合适的方式获取链接。例如,从第二个列表项获取第一个链接:
var menu= doc.getElementById('courses_menu');
var link= menu.getElementsByTagName('li')[1].getElementsByTagName('a')[0];
如果你使用的是Jetpack,你可以依靠足够新版本的Firefox来获得Selectors-API的原生支持,这样你就可以在不使用jQuery之类的额外库的情况下更轻松地获得它,例如:
var link= doc.querySelector('#courses_menu>ul>li:nth-child(2) a');
现在,old-school DOM Level 0为您提供了几个简单的属性,可以在链接中获取URL的各个部分,而无需使用不可靠的正则表达式处理。如果您想要整个查询字符串crsEdId=78
,您可以说:
var query= link.search.substring(1);
(子字符串将取消任何前导?
个字符。)
如果可能有更多查询参数,并且您想要专门找到名为crsEdId
的查询参数,则必须完全处理查询,例如:
var crsEdId= getParameter(query, 'crsEdId');
function getParameter(query, name) {
var pars= query.split(/[&;]/g);
for (var i= pars.length; i-->0;) {
var n= pars[i].split('=')[0];
if (decodeURIComponent(n)===name)
return decodeURIComponent(pars[i].substring(n.length+1));
}
}