#jquery #html #css
#jquery ( jquery ) #HTML #css — код #jquery #css
Вопрос:
Как применить css-класс к «td» на основе условия? Пожалуйста, проверьте приведенный ниже код. У меня есть таблица под названием «FunctionArea», в которой мне нужно динамически создавать td и применять CSS на основе условия
var tbody = $('#FunctionArea tbody');
var FArea = ['test','test1','test2','test3'];
$.each(FArea, function (i, FArea) {
var tr = $('<tr>')
$('<td>').html(FArea).appendTo(tr);
$.each(FunctionArea, function (i, FunctionArea) {
if (FArea == FunctionArea.split(':')[0])
{
var tdclass = FunctionArea.split(':')[3] == "Input" ? 'input' : 'delivarable';
$('<td>').addClass(tdclass);
$('<td>').html("<a class='hiddenTab' href=" FunctionArea.split(':')[2] ">" FunctionArea.split(':')[1] "</a>").appendTo(tr);
}
});
tbody.append(tr);
});
table#FunctionArea {
border-collapse: separate;
border-spacing: 15px;
color: #4a4a4d;
font: 14px/1.4 "Helvetica Neue", Helvetica, Arial, sans-serif;
margin: 10px;
border: 1px solid #ddd;
}
#FunctionArea th,
table.input td {
background-color: #4CAF50;
border: none;
color: white;
padding: 7px 13px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 3px 3px;
cursor: pointer;
/*-webkit-transition-duration: 0.4s;*/
transition-duration: 0.4s;
border-radius: 8px;
}
table.delivarable td {
background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head></head>
<body>
<table id="FunctionArea">
<tbody></tbody>
</table>
</body>
</html>
Комментарии:
1. Вы уверены, что на вашей странице загружена библиотека `jquery`?
2. Да, я добавил только фрагмент.
3. Откуда
FArea
берется? А у вас тоже естьhtml
страница?4. FArea и FunctionArea — это два массива, в которых я храню значения
5. где ваша область, функциональная область
Ответ №1:
Предлагаю избегать прямых манипуляций с dom с помощью «$().html()». потому что do не создает полезный объект. вместо этого создайте объект и добавьте.
`
<table id="myTable">
</table>
<button id="btAppend">Append</button>
<style>
.blue{ color:blue;}
.red{ color:red;}
</style>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script>
var counter=0;
var myTable=$("#myTable");
var btAppend=$("#btAppend");
btAppend.click(function(){
counter ;
var tr=$('<tr id="id-mytr-' counter '">');
var td1=$('<td>');
var tdclass=(counter % 2 == 1)?"blue":"red";
td1.addClass(tdclass);
td1.append("Hello");
tr.append(td1);
myTable.append(tr);
});
</script>
`
Комментарии:
1. Предоставление отдельных идентификаторов для TD помогло мне решить проблему спасибо Рубенс за вашу помощь и всем другим, кто дал мне информацию, ценю вашу помощь.