【问题标题】:How to dynamically add a link to a parent div如何动态添加到父 div 的链接
【发布时间】:2017-11-23 06:10:08
【问题描述】:

在下面的我的 sn-p 中,你会看到一个蓝色和红色的块。红色表示未完成特定职责。我试图为这些未完成的职责做的是动态地使其外部 div(其中一个#account-unfinished-package, #account-unfinished-logo)充当链接。

我不确定如何动态执行此操作,因为职责(块)将从未完成/已完成更改。我不希望完成的块有链接,否则我只会将它添加到 html 中。

有没有人知道如何使未完成的块的外部 div 动态地充当链接?

Here is a jsfiddle.

var unfinishedPack = 1;
var unfinishedLogo = 0;
if (unfinishedPack == 0) {
  $('#account-unfinished-package').addClass('red');
  $('#unfinished-title-package').html('Product package needs setup.');
  $('#unfinished-img-package').html("<img src='http://s3.amazonaws.com/retain-static/images/realestate/error-circle.png' class='unfinished-img' alt='Package Needs Setup'>");
}
else if (unfinishedPack > 0) {
  $('#account-unfinished-package').addClass('blue');
  $('#unfinished-title-package').html('Product Package Setup Complete!');
  $('#unfinished-img-package').html("<img src='http://s3.amazonaws.com/retain-static/images/realestate/checkmark-circle-white.png' class='unfinished-img' alt='Package Complete'>");
}

if (unfinishedLogo == 0) {
  $('#account-unfinished-logo').addClass('red');
  $('#unfinished-title-logo').html('Company logo needs added. <a href="#">Click to add</a>');
  $('#unfinished-img-logo').html("<img src='http://s3.amazonaws.com/retain-static/images/realestate/error-circle.png' class='unfinished-img' alt='Logo Needs Added'>");
}
else if (unfinishedPack > 0) {
  $('#account-unfinished-logo').addClass('blue');
  $('#unfinished-title-logo').html('Account Logos Complete!');
  $('#unfinished-img-logo').html("<img src='http://s3.amazonaws.com/retain-static/images/realestate/checkmark-circle-white.png' class='unfinished-img' alt='Logo Complete'>");
}
#account-unfinished {
    width: 100%;
    height: auto;
    /*color: #D8000C;*/
    /*background: #FFBABA;*/
    margin-bottom: 10px;
    display: none;
}
#account-unfinished.block {
    display: block;
}
#account-unfinished-package, #account-unfinished-logo {
    width: 50%;
    height: 100%;
    display: inline-block;
    vertical-align: top;
}
#account-unfinished-package.red, #account-unfinished-logo.red {
    background: #D8000C;
    height: 100%;
}
#account-unfinished-package.blue, #account-unfinished-logo.blue {
    background: #09afdf;
    height: 100%;
}
.account-unfinished-inner {
    padding: 15px;
}
.account-unfinished-title {
    font-size: 1.5rem;
    color: #FFF;
    font-family: 'Lato', sans-serif;
    line-height: 1.4em;
    text-align: center;
}
.account-unfinished-title a {
    color: #FFF;
}
#unfinished-img-package, #unfinished-img-logo {
    margin: 10px auto;
    display: block;
    text-align: center;
}
.unfinished-img {
    height: 50px;
    width: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="account-unfinished-package">
  <div class="account-unfinished-inner">
    <p class="account-unfinished-title" id="unfinished-title-package"></p>
    <div id="unfinished-img-package"></div>
  </div>
</div><div id="account-unfinished-logo">
  <div class="account-unfinished-inner">
    <p class="account-unfinished-title" id="unfinished-title-logo"></p>
    <div id="unfinished-img-logo"></div>
  </div>
</div>

【问题讨论】:

  • 所以基本上你想用 &lt;a&gt; 元素包装“未完成”的块,当它们“完成”时 - 解开它们?
  • @Catalyst 是的,完全正确。

标签: javascript jquery dynamic hyperlink


【解决方案1】:

使用wrapInner函数:

if (unfinishedLogo == 0) {
  $('#account-unfinished-logo').addClass('red');
  $('#account-unfinished-logo').wrapInner('<a href="https://google.com"></a>');
  $('#unfinished-title-logo').html('Company logo needs added. <a href="#">Click to add</a>');
  $('#unfinished-img-logo').html("<img src='http://s3.amazonaws.com/retain-static/images/realestate/error-circle.png' class='unfinished-img' alt='Logo Needs Added'>");
}
else if (unfinishedPack > 0) {
  $('#account-unfinished-logo').addClass('blue');
  $('#unfinished-title-logo').html('Account Logos Complete!');
  $('#unfinished-img-logo').html("<img src='http://s3.amazonaws.com/retain-static/images/realestate/checkmark-circle-white.png' class='unfinished-img' alt='Logo Complete'>");
}

我给你做了个小提琴:https://jsfiddle.net/4mLjdee5/

【讨论】:

  • 谢谢!你知道为什么我更改完成的变量时徽标框会消失吗? ... 像这样 ...var unfinishedPack = 0; var unfinishedLogo = 1;1
  • 是的,你有一个复制意大利面错误。检查我的更新,我也在上面的代码中做了它——else if (unfinishedPack &gt; 0) {应该是(unfinishedLogo &gt; 0) {jsfiddle.net/4mLjdee5/1
  • 谢谢...没看到那个错误。感谢您的帮助!
猜你喜欢
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
  • 2012-06-18
  • 2016-03-15
  • 2012-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多