Ответы:
Вы можете установить класс (независимо от того, что это было ) с помощью .attr()
, например, так:
$("#td_id").attr('class', 'newClass');
Если вы хотите добавить класс, используйте .addclass()
вместо этого, как это:
$("#td_id").addClass('newClass');
Или короткий способ поменять класс с помощью .toggleClass()
:
$("#td_id").toggleClass('change_me newClass');
Вот полный список методов jQuery специально для class
атрибута .
.closest('td')
вместо .parents('td:first')
:)
I want to be able to do this while inside the click event of some other dom object. How do I grab the td's id and change its class?
- может быть, я неправильно читаю, может быть, он хочет использовать идентификатор тд для изменения класса ...
<td>
вопроса :)
change_me
часть является необязательной, если вы используетеtoggleClass()
Я думаю, что он хочет заменить имя класса.
Примерно так будет работать:
$(document).ready(function(){
$('.blue').removeClass('blue').addClass('green');
});
с http://monstertut.com/2012/06/use-jquery-to-change-css-class/
Вы можете сделать это:
$("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
или вы можете сделать это
$("#td_id").removeClass('Old_class').addClass('New_class');
Вы можете проверить addClass или toggleClass
Таким образом, вы хотите изменить его, когда он нажал ... позвольте мне пройти через весь процесс. Давайте предположим, что ваш «Внешний DOM-объект» является входом, как select:
Давайте начнем с этого HTML:
<body>
<div>
<select id="test">
<option>Bob</option>
<option>Sam</option>
<option>Sue</option>
<option>Jen</option>
</select>
</div>
<table id="theTable">
<tr><td id="cellToChange">Bob</td><td>Sam</td></tr>
<tr><td>Sue</td><td>Jen</td></tr>
</table>
</body>
Некоторые очень простые CSS:
#theTable td {
border:1px solid #555;
}
.activeCell {
background-color:#F00;
}
И установите событие jQuery:
function highlightCell(useVal){
$("#theTable td").removeClass("activeCell")
.filter(":contains('"+useVal+"')").addClass("activeCell");
}
$(document).ready(function(){
$("#test").change(function(e){highlightCell($(this).val())});
});
Теперь, когда вы выбираете что-то из выбора, он автоматически находит ячейку с соответствующим текстом, что позволяет вам подорвать весь процесс на основе идентификатора. Конечно, если вы хотите сделать это таким образом, вы можете легко изменить скрипт для использования идентификаторов, а не значений, сказав
.filter("#"+useVal)
и убедитесь, что добавили идентификаторы соответствующим образом. Надеюсь это поможет!
РЕДАКТИРОВАТЬ:
Если вы говорите, что вы заменяете его из вложенного элемента, вам вообще не нужен идентификатор. Вы можете сделать это вместо этого:
$(this).closest('td').toggleClass('change_me some_other_class');
//or
$(this).parents('td:first').toggleClass('change_me some_other_class');
Оригинальный ответ:
$('#td_id').removeClass('change_me').addClass('some_other_class');
Другой вариант:
$('#td_id').toggleClass('change_me some_other_class');
<td>
, хотя он может быть, перечитайте внимательно :)
этот метод хорошо работает для меня
$('#td_id').attr('class','new class');
изменить класс с помощью jquery
попробуй это
$('#selector_id').attr('class','new class');
Вы также можете установить любой атрибут, используя этот запрос
$('#selector_id').attr('Attribute Name','Attribute Value');
Я лучше использую .prop, чтобы изменить className, и он работал отлично:
$(#td_id).prop('className','newClass');
для этой строки кода вам просто нужно изменить имя newClass и, конечно, идентификатор элемента в следующем примере: idelementinyourpage
$(#idelementinyourpage).prop('className','newClass');
Кстати, когда вы хотите найти, какой стиль применяется к любому элементу, вы просто нажимаете F12 в браузере, когда отображается ваша страница, а затем выбираете на вкладке DOM Explorer элемент, который хотите увидеть. В Styles теперь вы можете видеть, какие стили применяются к вашему элементу и из какого класса он читается.
var $td = $(this).parents('td:first')
], затем получает его id [var id = $td.attr('id');
], а также класс [var class = $td.attr('class');
], потому что он хочет, чтобы элемент клика внутри TD