Я хочу изменить класс td-тега с учетом id тега td:
<td id="td_id" class="change_me"> ...
Я хочу иметь возможность сделать это, находясь внутри события click другого объекта dom. Как захватить идентификатор td и изменить его класс?
Я хочу изменить класс td-тега с учетом id тега td:
<td id="td_id" class="change_me"> ...
Я хочу иметь возможность сделать это, находясь внутри события click другого объекта dom. Как захватить идентификатор td и изменить его класс?
Вы можете установить класс (независимо от того, что это было), используя .attr()
, например:
$("#td_id").attr('class', 'newClass');
Если вы хотите добавить класс, используйте .addclass()
, например:
$("#td_id").addClass('newClass');
Или короткий путь для замены классов с помощью .toggleClass()
:
$("#td_id").toggleClass('change_me newClass');
Здесь полный список методов jQuery специально для атрибута class
.
Я думаю, вы ищете это:
$('#td_id').removeClass('change_me').addClass('new_class');
Я думаю, он хочет заменить имя класса.
Что-то вроде этого будет работать:
$(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())});
});
Теперь, когда вы выбираете что-то из выбора, он автоматически найдет ячейку с соответствующим текстом, что позволит вам подорвать весь процесс на основе идентификатора. Конечно, если вы хотите сделать это таким образом, вы можете легко изменить script, чтобы использовать идентификаторы, а не значения, говоря
.filter("#"+useVal)
и обязательно добавьте идентификаторы соответствующим образом. Надеюсь, это поможет!
EDIT:
Если вы говорите, что вы меняете его из вложенного элемента, вам совсем не нужен идентификатор. Вы можете сделать это вместо:
$(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');
$('.btn').click(function() {
$('#td_id').removeClass();
$('#td_id').addClass('newClass');
});
or
$('.btn').click(function() {
$('#td_id').removeClass().addClass('newClass');
});
В том случае, если у вас уже есть класс и вам нужно чередоваться между классами как противно добавлять класс, вы можете связать события переключения:
$('li.multi').click(function(e) {
$(this).toggleClass('opened').toggleClass('multi-opened');
});
этот метод хорошо работает для меня
$('#td_id').attr('class','new class');
Вы можете установить класс с помощью .attr(), например,
$("#td_id").attr('class', 'newClass');
Я лучше использую .prop, чтобы изменить className, и он работал отлично:
$(#td_id).prop('className','newClass');
для этой строки кода вам просто нужно изменить имя newClass и, конечно, идентификатор элемента в следующем примере: idelementinyourpage
$(#idelementinyourpage).prop('className','newClass');
Кстати, когда вы хотите найти, какой стиль применяется к любому элементу, вы просто нажимаете F12 в браузере, когда отображается ваша страница, а затем выбираете на вкладке DOM Explorer элемент, который хотите увидеть. В Styles теперь вы можете видеть, какие стили применяются к вашему элементу и из какого класса он читается.
изменить класс с помощью jquery
попробуй это
$('#selector_id').attr('class','new class');
Вы также можете установить любой атрибут, используя этот запрос
$('#selector_id').attr('Attribute Name','Attribute Value');