您好,我是相关标签的初学者,
我用作参考:绑定键盘到左/右导航
我有这个HTML:<div class="pager">
<br />
<div class="myjsp-prev-next" style="text-align:inherit;">
<span class="myjsp-prev"><a href="{url}">Prev</a></span>
<span class="myjsp-next"><a href="{url}">Next</a></span>
</div>
</div>
<br />
Javascript: $(function() {
$(document).keyup(function(e) {
switch (e.keyCode) {
case 37:
var x = document.querySelectorAll(".myjsp-prev");
window.location = x.attr('href');
break;
case 39:
window.location = $('span.myjsp-next a').attr('href');
break;
}
});
});
我正在阅读JQUERY的API,并想尝试使用querySelector来选择具有该类的元素,然后转到下一个或上一个url。
我正在阅读JQUERY的层次结构页面,我不知道什么是错的。提前谢谢。
编辑:我试着添加:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(document).keyup(function(e) {
switch (e.keyCode) {
case 37:
var x = document.querySelectorAll(".myjsp-prev a")[0];
var href = x.getAttribute('href');
window.location = x.attr('href');
break;
case 39:
var y = document.querySelectorAll(".myjsp-next a")[0];
var href = y.getAttribute('href');
window.location = y.attr('href');
break;
}
});
});
</script>
我在控制台日志中得到错误:
未捕获的类型错误:y.a attr不是一个函数
Uncaught TypeError: x.a attr is not a function
我也尝试了eq(x)和eq(y),但仍然不起作用。谢谢你。
编辑:好了,我想我知道我想要什么了。基本上:
我有这个选项选择器HTML:
<div id="mjsp-menu-select" style="float:right">
<select onchange="navigateTo(this, 'window');">
<option value="/example/example">Page 1</option>
<option value="/example/example?start=1" selected="selected">2</option>
<option value="/example/example?start=2">3</option>
<option value="/example/example?start=3">4</option>
<option value="/example/example?start=4">5</option>
<option value="/example/example?start=5">6</option>
<option value="/example/example?start=6">7</option>
<option value="/example/example?showall=1"> All Pages</option>
</select>
</div>
显示页面的位置:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="pager">
<br />
<div class="myjsp-prev-next" style="text-align:inherit;">
<span class="myjsp-prev"><a href="{url-prev}">Prev</a></span>
<span class="myjsp-next"><a href="{url-next}">Next</a></span>
</div>
</div>
<br />
和这个Javascript:
$(function() {
document.querySelectorAll("#mjsp-menu-select option").length;
$(document).keyup(function(e) {
switch (e.keyCode) {
case 37:
var x = document.querySelectorAll(".myjsp-prev a")[0];
var href = x.getAttribute('href');
window.location = x;
break;
case 39:
var y = document.querySelectorAll('.myjsp-next a')[0];
var href = x.getAttribute('href');
window.location = y;
break;
}
});
});
目前,我可以使用方向键导航到上一页,但不能转到下一页。
我试图找到一种方法去计数有多少元素在选项选择器,然后将这些url存储到一个数组中附加一个start=1, start=2等,直到最大数量的url可在选项选择器中选择。
编辑:我明白了:在第二种情况下,我用x代替y…
你可以像这样使用javascript查询选择器
var x = document.querySelectorAll(".myjsp-prev a")[0];
var href = x.getAttribute('href');
$(function() {
$(document).keyup(function(e) {
switch (e.keyCode) {
case 37:
var x = document.querySelectorAll(".myjsp-prev a")[0];
console.log(x.getAttribute('href'));
//window.location = x.attr('href');
break;
case 39:
var y = document.querySelectorAll('.myjsp-next a')[0];
console.log(y.getAttribute('href'));
//window.location = y.attr('href');
break;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="pager">
<br />
<div class="myjsp-prev-next" style="text-align:inherit;">
<span class="myjsp-prev"><a href="{url-prev}">Prev</a></span>
<span class="myjsp-next"><a href="{url-next}">Next</a></span>
</div>
</div>
<br />