我在这里有一个函数,可以在不同的ASCII符号(特别是⊕ (⊕)和&ominus (⊖) )之间切换。我不明白的是,当它变成⊖之后,它就不会再变回来了。有人知道为什么吗?
这将生成表行
"<tr><td>Other</td><td>" + stats.others.length + <span class='displaybutton' style='cursor:pointer;'>⊕</span></td></tr>";重要的部分是这个<span>
<span class='displaybutton' style='cursor:pointer;'>⊕</span>这被认为是在符号之间切换
$('.displaybutton').click(function(){
$('#otherResponseList').toggle();
if($(this).html() == '⊖'){
$(this).html('⊕');
} else {
$(this).html('⊖');
}
});发布于 2017-02-24 07:10:37
这两个符号不是ASCII。它们是HTML实体,属于Unicode字符集。它们不属于ASCII字符集。
比较html实体的HTML表示可能很棘手。它们可以由实体表示,但也可以转换为相应的Unicode字符。解决方案是考虑结果,这就是文本内容。可以使用jQuery.text()和Unicode代码点轻松地操作文本内容,以使用ominus (0x2296)和oplus (0x2295):
$('.displaybutton').click(function(){
$('#otherResponseList').toggle();
$(this).text($(this).text()=='\u2296'?'\u2295':'\u2296');
});发布于 2017-02-24 07:02:10
名称⊕和⊖是HTML用来表示不同unicode代码点的实体代码。因为您的JS代码很可能是UTF-8,所以您可以直接针对字符进行测试。
你可以使用下面的代码来完成你想要做的事情。如果您想对HTML实体代码进行编码/解码,可以查看this SO Post
$('.displaybutton').click(function(){
if($(this).html() != '⊕'){
$(this).html('⊕');
} else {
$(this).html('⊖');
}
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class='displaybutton' style='cursor:pointer;'>⊕</span>
发布于 2017-02-24 07:05:14
您可以用data-attribute标记它,并与之进行比较,而不是与元素中的值进行比较。
<div>
<span id="icon" data-id="plus">⊕</span>
</div>
<button id="change">change</button>
$(document).ready(function() {
$('#change').on('click', function() {
if ($('#icon').attr('data-id') === "plus") {
$('#icon').attr('data-id', "minus");
$('#icon').html('⊖');
} else {
$('#icon').attr('data-id', "plus");
$('#icon').html('⊕');
});
});https://stackoverflow.com/questions/42427716
复制相似问题