最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - get parent node with getElementsByClassName - Stack Overflow

programmeradmin1浏览0评论

I am looking for a javascript solution of getting the parentNode from my object. However no matter what I seem to do it keeps saying 'undefined'.

This is my code:

HTML

<div class="EmbedImageWidget" ng-if="vm.imageLink == '' || vm.imageLink == 'undefined'">
    <img ng-src="{{ vm.imageUrl }}" />
</div>

<div class="EmbedImageWidget" ng-if="vm.imageLink" >
    <a href="{{vm.imageLink}}" target="_blank">
        <img ng-src="{{ vm.imageUrl }}" />
    </a>
</div>

JS

var imageElement = document.getElementsByClassName("EmbedImageWidget");
console.log(imageElement);

OBJECT

I have tried using

    var imageElement = document.getElementsByClassName("EmbedImageWidget").parentNode;
    console.log(imageElement);

    var imageElement = document.getElementsByClassName("EmbedImageWidget")[0].parentNode;
    console.log(imageElement);

However both options didn't work. Any help will be much appreciated. Cheers!

I am looking for a javascript solution of getting the parentNode from my object. However no matter what I seem to do it keeps saying 'undefined'.

This is my code:

HTML

<div class="EmbedImageWidget" ng-if="vm.imageLink == '' || vm.imageLink == 'undefined'">
    <img ng-src="{{ vm.imageUrl }}" />
</div>

<div class="EmbedImageWidget" ng-if="vm.imageLink" >
    <a href="{{vm.imageLink}}" target="_blank">
        <img ng-src="{{ vm.imageUrl }}" />
    </a>
</div>

JS

var imageElement = document.getElementsByClassName("EmbedImageWidget");
console.log(imageElement);

OBJECT

I have tried using

    var imageElement = document.getElementsByClassName("EmbedImageWidget").parentNode;
    console.log(imageElement);

    var imageElement = document.getElementsByClassName("EmbedImageWidget")[0].parentNode;
    console.log(imageElement);

However both options didn't work. Any help will be much appreciated. Cheers!

Share Improve this question edited Nov 20, 2017 at 10:18 Rodney Wormsbecher asked Nov 20, 2017 at 10:08 Rodney WormsbecherRodney Wormsbecher 9274 gold badges19 silver badges41 bronze badges 3
  • 3 In the HTML you provided, elements with class EmbedImageWidget don't seem to have parent nodes. – Bango Commented Nov 20, 2017 at 10:15
  • 1 Can you include an example on jsfiddle ? – Andrei Savin Commented Nov 20, 2017 at 10:16
  • It is because they are being injected from another file. I uploaded a new image that shows this. – Rodney Wormsbecher Commented Nov 20, 2017 at 10:17
Add a ment  | 

2 Answers 2

Reset to default 4

You need to use document.getElementsByClassName("EmbedImageWidget")[0].parentNode instead of document.getElementsByClassName("EmbedImageWidget").parentNode .This code is working fine Here


But I think you want to access Image element and that is not parent of div . That is child of that div instead

var imageElement = document.getElementsByClassName("EmbedImageWidget")[0].parentNode;
console.log(imageElement);

this is the best solution, but there is some problem, your img element generated after running your js code. when you try to get parent node of img element in js, there is no img element with EmbedImageWidget class.

it's because of ng-if.

发布评论

评论列表(0)

  1. 暂无评论