将类名称附加到div类下包含的iframe ID

时间:2018-07-19 09:03:55

标签: javascript jquery

我有以下代码

<div id="ad">
<div id="adsensebanner">
<iframe id="google_ad_randomnumber">
</iframe>
</div>
</div>

并且我正在寻找一种使用jQuery和CSS属性匹配的方法来做到这一点:

<div id="ad">
<div id="adsensebanner" class="addedclass">
<iframe id="google_ad_randomnumber">
</iframe>
</div>
</div>

关于搜索具有另一个父div并将div附加到子类的div的任何想法?

4 个答案:

答案 0 :(得分:2)

您对各种答案的评论表明您的HTML无效,并且其中有多个id="adsensebanner",但其中只有一个id="ad"

您最好的选择是使HTML有效。只能有一个元素,其中包含id="adsensebanner"

但是,如果出于某些原因,您只想在id="ad"内定位该元素,则将其定位:

document.querySelector("#ad #adsensebanner").classList.add("addedclass");

或使用jQuery:

$("#ad #adsensebanner").addClass("addedclass");

说“只有在#adsensebanner内,才将'addsedclass'添加到#ad中。”可能存在有效的用例(如果带有id="adsensebanner"的一个元素可能在#ad之内,也可能不在其中,并且您不想添加该类),但是它们很少见。 / p>

如果您将HTML改正为只有一个id="adsensebanner",并且您总是想添加该类,则:

document.getElementById("adsensebanner").classList.add("addedclass");

或使用jQuery:

$("#adsensebanner").addClass("addedclass");

在评论中您说过:

  

双重划分检查肯定会起作用,但是,我的第二个div的ID名称有所不同,因此我想通过attr(例如div[id*='adsensebanner'])进行选择。有什么解决方法吗?

是的,您可以使用任何attribute substring selectors。例如,如果id将始终以adsensebannerid="adsensebanner1"id="adsensebanner2"等)开始,则选择器将与{ {1}}或jQuery将是querySelector。 (或者您也可以使用您提到的包含"#ad div[id^=adsensebanner]"*=(如果它总是以某些东西结尾)。)

答案 1 :(得分:0)

尝试以下方法:

$('#adsensebanner', window.parent.document).addClass("addedclass");

答案 2 :(得分:0)

简单的JS可以解决问题。而且我看不到该div位于iFrame中。

var p = document.getElementById("ad");
p.querySelector("[id='adsensebanner']").classList.add("addedClass");
<div id="ad">
  <div id="adsensebanner">
    <iframe id="google_ad_randomnumber">
</iframe>
  </div>
</div>

答案 3 :(得分:0)

这仅通过JavaScript:

 document.getElementById("ad").getElementsByTagName("div")[0].classList.add("addedClass");

$( "#ad div:nth-last-child(1)" ).addClass("addedClass");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="ad">
<div id="adsensebanner">
<iframe id="google_ad_randomnumber">
</iframe>
</div>
</div>

<div id="ad1">
<div id="adsensebanner">
<iframe id="google_ad_randomnumber">
</iframe>
</div>
</div>

这将仅向具有父div id =“ ad”的div添加一个类