这里我试图在点击进入复选框时更改附加项目的css,其中类为“.item”。 这里发生的事情是:当我点击添加的项目时,将应用css('line-through');相反,我只想点击复选框时才会应用css。
我尝试通过控制台运行各个查询,但它返回了正确的值,但它没有显示写入css。
function entervalue()
{
var text = $('#inputext').val();
$("#list").append('<div class="item"> <input type="checkbox"> ' + text + '</div>');
$("#inputext").val('');
}
$(document).ready(function(){
$('#inputext').keyup(function(b)
{
if (b.keyCode===13)
{
entervalue();
}
})
});
$(document).on('click', '.item', function() {
if ($(this).css('textDecoration') == 'line-through')
{
$(this).css('textDecoration', 'none');
}
else
{
$(this).css('textDecoration', 'line-through');
}
});
body {
font: 14px 'Helvetica Neue';
line-height: 1.4em;
background: #f5f5f5;
color: #4d4d4d;
margin: 0 auto;
}
#inputext {
background: white;
font-size: 42px;
margin-left: 2%;
margin-top: 1%;
position: fixed;
border-style: inset;
border-color: floralwhite;
width: 26%;
}
#app{
background-color: aliceblue;
width: 72%;
height: 70%;
border-bottom-style:inset;
border-width: thick;
border-radius: 3%;
margin-left: 13%;
margin-top: 19%;
}
#item1{
font-weight: 500;
}
.item{
font-size: 20px;
border-bottom: solid darkcyan;
margin-bottom: 5%;
margin-top: 6%;
margin-right: 3%;
margin-left: -5%;
}
.maincontent{
background-color: darkseagreen;
margin-top: 6%;
margin-left: 36%;
height: 60%;
width: 30%;
position: fixed;
border-style: groove;
border-width: thick;
border-radius: 5%;
}
.strikeThrough{
text-decoration:line-through;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="maincontent">
<input type="text" id="inputext" placeholder="todos"/>
<div id="app">
<ul id="list">
</ul>
</div>
</div>
function entervalue()
{
var text = $('#inputext').val();
$("#list").append('<div class="item"> <input type="checkbox"> ' + text + '</div>');
$("#inputext").val('');
}
$(document).ready(function(){
$('#inputext').keyup(function(b)
{
if (b.keyCode===13)
{
entervalue();
}
})
});
$(document).on('click', '.item', function() {
if ($(this).css('textDecoration') == 'line-through')
{
$(this).css('textDecoration', 'none');
}
else
{
$(this).css('textDecoration', 'line-through');
}
});
答案 0 :(得分:1)
不确定帖子中的“附加项目”评论 - 您是否在页面加载后向DOM添加内容?在这种情况下,您需要指定click事件处理程序($(document).on('click','textCheckbox ...'等)。
以下是更改单个元素上的css的更好的替代方法 - 你指定一个类(虽然有攻击的CSS),然后在复选框状态下切换它。
$(document).ready(function(){
$('#textCheckbox').on('click',function(){
if($(this).is(':checked')) {$('.item').addClass('strikeThrough')}
else{$('.item').removeClass('strikeThrough')}
});
})
.strikeThrough{text-decoration:line-through}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Checkbox
<input type="checkbox" id="textCheckbox">
</label>
<p class="item">TEST CONTENT</p>
你甚至可以通过使用.toggleClass()来缩写这一点(只需在复选框的每次点击时切换直通类。:
$(document).ready(function(){
$('#textCheckbox').on('click',function(){
$('.item').toggleClass('strikeThrough')
});
})
.strikeThrough{text-decoration:line-through}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Checkbox
<input type="checkbox" id="textCheckbox">
</label>
<p class="item">TEST CONTENT</p>
答案 1 :(得分:0)
使用复选框上的onchange事件处理程序并检查复选框是否已选中使用$('input[type=checkbox]').prop('checked')
$('input[type=checkbox]').on('change', function(){
if($(this).prop('checked')){
console.log($('.item').css('textDecoration'));
if ($('.item').css('textDecoration') == 'line-through')
{
$('.item').css('textDecoration', 'none');
}
else
{
$('.item').css('textecoration', 'line-through');
}
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" />
<div class="item" >Hello World</div>
如果您希望具有类.item
的项目在选中复选框时具有css直通,而不是在未选中复选框时。这就是你需要的
$('input[type=checkbox]').on('change', function(){
if($(this).prop('checked')){
$('.item').css('text-decoration', 'line-through');
}
else {
$('.item').css('text-decoration', 'none');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" />
<div class="item" >Hello World</div>
答案 2 :(得分:0)
可能会帮助你
$(":checkbox").on("change", function() {
var that = this;
$('.txt-class').css("background-color", function() {
return that.checked ? "#ff0000" : "";
});
$('.txt-class').css("textDecoration", function() {
return that.checked ? "line-through" : "";
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><input type='checkbox' name='groupid' value='1'>1</div>
<div class="txt-class">
Ganesh Putta
</div>
答案 3 :(得分:0)
试试这个。
$('.checkbox').on('click', function(){
if($(this).prop('checked')){
$(this).parent().find('.item').css('text-decoration','line-through');
}
else {
$(this).parent().find('.item').css('text-decoration','none');
}
});
<script src="https://code.jquery.com/jquery-2.1.2.min.js"></script>
<div class="check-label"><input type="checkbox" class="checkbox" /><span class="item">Pick up Comic Books</span></div>
<div class="check-label"><input type="checkbox" class="checkbox" /><span class="item">Cook Dinner</span></div>
通过将文本和复选框放在label标签内,您只需单击文本即可检查该项目。
编辑:根据OP的评论更新
答案 4 :(得分:0)
尝试以下。 注意:在您的情况下,textDecoration应该是文本修饰
<html>
<head></head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<style type="text/css">
</style>
<body>
<input type="checkbox"> Pick me
<p>I'm under him</p>
</body>
<script type="text/javascript">
$(document).ready(function(){
$("input[type='checkbox']").on('change',function(){
var is_it_checked = $(this).prop("checked");//check the checkbox is checked or not
//according to the condition, do the styles with if condition like below
if (is_it_checked == true)
{
$("p").css({"text-decoration":"line-through"});
}
else
{
$("p").css({"text-decoration":"none"});
}
});
});
</script>
</html>