我正在尝试在scrollTop函数中使用#,但我得到的只是'undefined' 我哪里出错?
<html><head><meta http-equiv=Content-Type content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css">
<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.js"></script>
</head><body>
<div data-role="page" id="page5" data-theme="c">
<BR><BR><BR><BR>
<p><span id="1.11.13">1.11.13</span> Lots of text here... </p>
<script>
$(window).on('pageinit', function() {
console.log($('#1.11.13').css('top')); //undefined
console.log($('#1.11.13').position()); // undefined
//console.log($('#1.11.13').offset().top); = Uncaught TypeError: Cannot read property 'top' of undefined
});
</script></div></body></html>
答案 0 :(得分:3)
使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\。例如,id =“foo.bar”的元素可以使用选择器$(“#foo \ .bar”)。
所以要么逃避特殊字符:
$('#1\\.11\\.13')
或使用:
var id="1.11.13";
$("[id='"+id+"']")
答案 1 :(得分:1)
.
表示类选择器,因此您需要转义它,因为在您的情况下它是id值的一部分
您需要转义ID
中的.
$('#1\\.11\\.13')
演示:Fiddle
否则会查找标识为1
且类11
和13
的元素
<span id="1" class="11 13">1.11.13</span>
演示:Fiddle
答案 2 :(得分:0)
请注意,id
以数字开头是无效的HTML。
在您的情况下,如果您想要保留选择器,可以通过\
$('#1\\.11\\.13')