#javascript
#javascript
Вопрос:
У меня есть HTML-код, и я хочу заменить что-то с помощью JavaScript.
<div class="maindiv">
<div class="childdiv">
<a href="www.abc.com" rel="prev">Old Text</a>
</div>
</div>
Теперь я хочу изменить «Старый текст» на другой, похожий на «Новый текст».
Пожалуйста, дайте мне знать, если это возможно.
Комментарии:
1. Да, это возможно. Что вы пробовали до сих пор?
2. Я попробовал document.getElementsByClassName(‘дочерний элемент a’).text(‘новый текст’); но не удалось.
3. Пожалуйста, дайте мне знать, если вы знаете какой-либо Javascript.
Ответ №1:
Вы должны найти свой элемент element внутри DOM, было бы лучше использовать class
свойства or / id
and .
Но в случае, если вам не разрешено редактировать DOM, вам нужно найти способ найти требуемый элемент, например, пересечение родительских элементов, у которых есть id
или class
.
- Получите первый элемент с помощью этого класса
childdiv
. - Получите первый
a
тег внутри найденного выше элемента. - Установите innerHTML для найденного элемента в требуемое значение exp:
New Text
.
Javascript (как вы просили)
<div class="maindiv">
<div class="childdiv">
<a href="www.abc.com" rel="prev">Old Text</a>
</div>
</div>
<script>
document.getElementsByClassName("childdiv")[0].getElementsByTagName('a')[0].innerHTML="New Text";
</script>
Jquery (та же логика, что и выше)
$(document).ready(function(){
$(".childdiv a").text("New Text");
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="maindiv">
<div class="childdiv">
<a href="www.abc.com" rel="prev">Old Text</a>
</div>
</div>
Ответ №2:
Вы просто используете document.getElementById("my-link").innerHTML = "New Text"
, но вы должны поместить id
атрибут в свой <a>
тег следующим образом:
<a id="my-link" href="www.abc.com" rel="prev">
^^^^^^^^^^^^
Или, если вы не хотите ничего редактировать в своем исходном HTML (плохая практика):
document.getElementsByTagName("a")[0].innerHTML = "New Text";
Комментарии:
1. @IftekHar отредактировал мой ответ.
Ответ №3:
Вы можете получить доступ к такому объекту DOM, используя
document.getElementsByClassName("childdiv")[0].childNodes[1].textContent="Updated Text";
Ответ №4:
Я не совсем понимаю вашу проблему, но я пробовал это, и это работает…
<div class="maindiv">
<div class="childdiv">
<a href="www.abc.com" class="link" rel="prev">Old Text</a>
</div>
</div>
и jQuery
$(".link").click(function(e){
e.preventDefault();
$(this).text("New Text");
});
https://jsfiddle.net/294m3my6/
Если вы хотите JavaScript
<div class="maindiv">
<div class="childdiv">
<a href="www.abc.com" id="link" rel="prev">Old Text</a>
</div>
</div>
И JS
function Action(evt) {
evt.preventDefault();
document.getElementById("link").innerHTML = "Next Text";
}
document.getElementById('link').addEventListener(
'click', Action, false
);
Комментарии:
1. Это jQuery .
Ответ №5:
@Amani решил мою проблему. Это то, что я хотел.
<div class="maindiv">
<div class="childdiv">
<a href="www.abc.com" rel="prev">Old Text</a>
</div>
</div>
<script>
document.getElementsByClassName("childdiv")[0].getElementsByTagName('a') [0].innerHTML="New Text";
Большое вам всем спасибо, особенно Амани.