我试图抵消一些对我来说很好的元素。但是如果元素id包含单引号,则会出现问题。它抛出一个错误,例如,如果元素id是whats_next,它的工作正常。 但如果id是什么' s_next,如果给我一个错误。
UIViewController
此外,我无法通过HTML访问我无法更改HTML。你们有什么解决办法吗?
这是我的代码:
Error: Syntax error, unrecognized expression: #What's_Next
....value:null},t.error=function(e){throw new Error("Syntax error, unrecognized exp...
我点击的元素的HTML:
$('.custom-toc li a').click(function(){
var id = $(this).attr('href');
console.log(id);
console.log($(id).offset());
});
元素偏移元素的HTML:
<a rel="internal" href="#What's_Next">What's Next</a>
答案 0 :(得分:2)
您可以使用'
replace()
HTML:
<div class="custom-toc">
<ul>
<li>
<a href="#What's_Next">dddfs</a>
</li>
</ul>
</div>
<span id="What's_Next">hello</span>
<h4 class="editable">What's Next2</h4>
JS:
$('.custom-toc li a').click(function(){
var id = $(this).attr('href').replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,'\\$1');
console.log(id);
console.log($(id).offset());
});
答案 1 :(得分:0)
您是否尝试过将id作为属性方法?
像这样:
var id = "What's Next";
var elem = $("span[id="+id+"]");
好吧,我试过了,但它不起作用:) - 向Garvit致敬,他说得对,这是他的解决方案(仅简化):
var id = $(this).attr('href');
console.log(id);
id = id.replace("'","\\'");
console.log($("#"+id).offset());
答案 2 :(得分:0)
这是另一种方法,可以在不转义引号的情况下执行此操作,但它要求您从href的前面删除哈希(并且,使用$(&#34; *&#34;)是慢)
$('.custom-toc li a').click(function() {
var href = $(this).attr('href').substring(1);
var a = $("*").filter(
function(index) {
return $(this).attr('id') == href;
}
);
console.log($(a[0]).offset());
答案 3 :(得分:-1)
您无法在div <?php
session_start();
include("../phpfiles/include/Config.php"); //db connect
$dbc = @mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE);
if(!$dbc)
{
trigger_error('Could not connect to MySql:'. mysqli_connect_error());
}
$query = "SELECT dateandtime,sum(grandtotal) FROM bb_pos.bb_bill
group by MONTH(dateandtime), YEAR(dateandtime) order by dateandtime DESC limit 12 "; // last 12 month in descending order
$result = mysqli_query($dbc, $query);
$cart = array();
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC))
{
$date = $row['dateandtime'];
$time=strtotime($date);
$month=date("F",$time);
$year=date("Y",$time);
array_push($cart,array(
'period'=>$month." ".$year,
'SALE'=>$row['sum(grandtotal)']));
}
echo json_encode($cart);
mysqli_close($dbc);
?>
<body>
<div class="x_content1">
<div id="graph_bar_group" style="width:100%; height:280px;"></div>
</div>
</body>
<script>
$.getJSON('morrisdata.php', function(data)
{
var date = data;
function custom_sort(a, b) {
return new Date(a.period).getTime() - new Date(b.period).getTime();
}
date.sort(custom_sort); // convert the last 12 months in ascending order
//var product_name = data.name;
Morris.Bar({
element: 'graph_bar_group',
data: data,
xkey: ['period'],
ykeys: ['SALE'],
labels: ['SALE'],
hideHover: 'auto',
resize: true,
parseTime: false,
xLabelAngle: 60
});
});
</script>
中使用'
符号 - 您应该更改
id
到
<span id="What's_Next"></span>
编辑:
因为您无法更改div的ID您正在处理无效的代码。您应该考虑先调试它以进一步工作。
编辑2:
感谢@Tibrogargan的评论,我已经检查过w3c推荐,他可能是对的:
id = ID元素的唯一标识符。一定不能 文档中具有相同id值的多个元素。任何 字符串,具有以下限制:
- 必须至少有一个字符
- 不得包含任何空格字符
来源:w3c.org