将href值更改为popupid无效

时间:2019-03-18 11:05:10

标签: javascript jquery html

我创建了一些具有不同描述的块,应该对其进行打印,因此我分别创建了所有弹出详细信息,并在加载和单击块时使打印按钮带有“#”,我试图更改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“正常工作

有人可以帮我吗?

2 个答案:

答案 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");
    });
});

这只是假设,这是您的问题:)如果完全没有帮助,请显示更多代码:)