我创建了一些具有不同描述的块,应该对其进行打印,因此我分别创建了所有弹出详细信息,并在加载和单击块时使打印按钮带有“#”,我试图更改href值更改为相应的popupid。单击后,href值的更改不会显示print popup。按照我使用的代码:
<div id ="9print">
<a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-square vc_btn3-style-classic vc_btn3-color-grey" href="#" title="">PRINT</a>
</div>
点击按钮9
$("#9print a").prop("href", "#sg-popup-id-429");
href值更改为“#sg-popup-id-429”,但是在此之后,当我单击“ PRINT”时,弹出窗口没有显示,如果我们直接将href值设置为“#sg-popup-id” -429“正常工作
有人可以帮我吗?
答案 0 :(得分:-1)
这是因为href属性包含的内容远远超过“#”。它包含完整的URL。您可以通过替换网址的最后一部分来使其正常工作。
正则表达式/#.*/
的工作方式如下。
#
匹配#个字符.*
匹配(几乎)任何字符0次无限制
var currHref = $("#9print a").prop("href");
$("#9print a").prop("href", currHref.replace(/#.*/, "#sg-popup-id-429"));
//code for showing initial and new href values.
var newHref = $("#9print a").prop("href");
console.log("initial href: " + currHref);
console.log("new href: " + newHref);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id ="9print">
<a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-square vc_btn3-style-classic vc_btn3-color-grey" href="#" title="">PRINT</a>
</div>
<div style="height: 2000px;"></div>
<div id="sg-popup-id-429" style="height: 100px; background-color: red">test<div>
答案 1 :(得分:-2)
首先,我将其放置在jquery的document ready function内,因此,您不会在页面上未加载的元素上运行试图调用的jQuery函数。
$(document).ready(function(){
$("#9print a").click(function() {
$("#9print a").attr("href", "#sg-popup-id-429");
});
});
这只是假设,这是您的问题:)如果完全没有帮助,请显示更多代码:)