#jquery
#jquery
Вопрос:
Я пытаюсь использовать .replaceWith для замены слов на функцию, но это не работает, я думаю, проблема в том, что я неправильно настроил функцию, но я не знаю, как это правильно написать. Кто-нибудь может мне помочь (это всего лишь мизер.) Спасибо.
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.min.js">
<html>
<body>
<script type="text/javascript">
var d=new Date();
var weekday=new Array(7);
weekday[0]="Monday";
weekday[1]="Tuesday";
weekday[2]="Wednesday";
weekday[3]="Thursday";
weekday[4]="Friday";
weekday[5]="Monday";
weekday[6]="Monday";
</script>
<script type="text/javascript">
$(document).ready(function($){
$('div.Shipby').replaceWith(function(){
return $("<div>").text("Orders placed now will ship " weekday[d.getDay()]);
});
});
</script>
<div class="Shipby">
Tomorrow.
</div>
</body>
</html>
Комментарии:
1. Это не так
replaceWith
работает. Пожалуйста, прочитайте документацию . И использоватьdocument.write
там очень, очень неправильно.2. Не
document.write()
перезаписывает весь документ?3. @user172071 — Зачем вам редактировать свой вопрос и вставлять правильный ответ в код там? Или я что-то пропустил?
Ответ №1:
Просто установите text()
:
$('div.Shipby').text("Orders placed now will ship " weekday[d.getDay()]);
Или html()
, если вы планируете включить HTML в свою строку:
$('div.Shipby').html("Orders placed now will ship " weekday[d.getDay()]);
Нет необходимости в использовании document.write()
.
Ответ №2:
Как сказал Blender, похоже, было бы проще просто обновить text
или html
, но если вы хотите использовать replaceWith
, вы можете сделать это следующим образом:
$(document).ready(function($){
$("div.Shipby").replaceWith(function(){
return $("<div>").text("Orders placed now will ship " weekday[d.getDay()]);
});
});
Вот jsFiddle:http://jsfiddle.net/TbE6P /
Комментарии:
1. Я думаю, что OP будет сильно смущен этим;) Но да, это вполне допустимое использование
.replaceWith()
.2. @SLaks: Спасибо, только что заметил это. Исправлено.
3. @Blender: Да, я согласен, что ваше решение здесь предпочтительнее, но подумал, что я бы показал OP, как добиться этого, также используя
replaceWith
функцию.4. Отсюда мой 1. Чем больше ответов, тем веселее!
5. @JamesJohnson Спасибо, я изменил это в соответствии с вашим ответом, и это не работает (я отредактировал свой вопрос