#jquery
#jquery
Вопрос:
Я пытаюсь создать динамическую ссылку href внутри jquery, но не могу этого сделать. Я могу получить data-id
переменную в jquery, но я не могу понять, как создать ссылку. Кто-нибудь может сказать мне, что я делаю не так?
Я пытаюсь добиться этого:
<a href="page.php?page_id=some_page_id>"Read More</a>
Мой html
<a class="fancybox" class="img-responsive" data-id="<?php echo $page_id ?>" id="single_image" href="uploads/<?php echo $file ?>" title="<?php echo $title ?>" width="800 ">
<img src="uploads/thumbnails/<?php echo $file ?>" id="<?php echo $file ?>" class="img-responsive" width="190"></a>
Jquery
$(document).ready(function() {
$("a#single_image").fancybox({
afterLoad: function() {
this.outer.append("<div>" document.getElementById("detail").innerHTML "<a href="page.php?page_id=" $(this.element).data('id') "Read More</a></div>");
}
});
});
Комментарии:
1. Спасибо, что приняли мой ответ, можете ли вы также проголосовать для дальнейшего использования?
Ответ №1:
Вы неправильно экранируете внутренние кавычки. Попробуйте это:
this.outer.append("<div>" document.getElementById("detail").innerHTML "<a href="page.php?page_id="" $(this.element).data('id') "Read More</a></div>");
Комментарии:
1. Спасибо за это. По какой-то причине я не получаю ссылку. Если ввести «href» в строку, я могу видеть это в строке, но как только я добавлю » Есть идеи?
2. @JulianJ я не совсем понимаю ваш пример. Не могли бы вы объяснить это немного более понятно? 🙂
3. Ну, по какой-то причине, когда я экранирую внутренние кавычки, как вы сказали, я не вижу выведенную ссылку. Я поэкспериментировал и обнаружил, что если я опущу ‘<‘ из » Я не могу понять, почему это может вызвать проблему.
4. @JulianJ зачем вам нужно добавлять ‘<‘ в href?
href
является атрибутом тега привязки HTMLa
. И ‘<‘ является допустимым префиксом только для html-тегов, а не для атрибутов. Это недопустимый html:<href="google.com">
он должен быть<a href="google.com">
5. Вы совершенно правы. Спасибо, что заметили это. В итоге я получил: this.outer.append(«<div>» document.getElementById(«detail»).innerHTML «»»>Подробнее</a></div>»);
Ответ №2:
Используйте single quote
внутри double
для 'page.php?page_id='
Замените этот код jquery своим.
$(document).ready(function() {
$("a#single_image").fancybox({
afterLoad: function() {
this.outer.append("<div>" document.getElementById("detail").innerHTML "<a href='page.php?page_id='" $(this.element).data('id') "Read More</a></div>");
}
});
});