选择没有ID的href并更改内部html

时间:2016-09-07 19:09:46

标签: javascript jquery

我正在尝试选择一个没有ID的href并更改内部html。我无法访问html,但我可以使用js / css。 href在li中,它有一个我可以选择的id。所以html看起来像这样

<li id="sampleID">
    <a title="sampletitle" href="somewhere.com">somewhere</a>
</li>

我目前正在使用类似的东西

<script type="text/javascript">var links =  document.querySelector('#sampleID').getElementsByTagName('a');

Array.prototype.forEach.call(links, function(el) {
    // set attribute
    el.setAttribute('id','sample');
});

var element=document.getElementById('sample'); 
element.innerhtml="somewhereElse";

</script>

但这不起作用(它没有将href设置为ID,因此显然不会更改innerhtml)。

编辑:对不起我之前没有指定,但是Jquery是一个选项(我已经在这个环境中调用了库)。因此,如果有一个非常简单的jquery解决方案,那将是完美的。

4 个答案:

答案 0 :(得分:4)

使用querySelector()

{"root":{"Table":[{"TableName":"HH_ENODEB","Stamp":"2016-08-25T04:30:00-07:00","measObjLdn":"LTHBC0126858/GTPU:Board Type=MPT, Cabinet No.=0, Subrack No.=1, Slot No.=7","Element_Type":"ENODEB","Key1":"LTHBC0126858","H1526727075":"0""Stamp":"2016-08-25T04:30:00-07:00","measObjLdn":"LTHBC0126858/GTPU:Board Type=MPT, Cabinet No.=0, Subrack No.=1, Slot No.=7","Element_Type":"ENODEB","Key1":"LTHBC0126858","H1526727076":"0""Stamp":"2016-08-25T04:30:00-07:00","measObjLdn":"LTHBC0126858/GTPU:Board Type=MPT, Cabinet No.=0, Subrack No.=1, Slot No.=7","Element_Type":"ENODEB","Key1":"LTHBC0126858","H1526727077":"0"}}

答案 1 :(得分:0)

试试这个

 <script type="text/javascript">
var links =  document.querySelector('#sampleID a');

       Array.prototype.forEach.call(links, function(el) {
           // set attribute
           el.setAttribute('id','sample');
       });

       var element=document.getElementById('sample'); 
       element.innerhtml="somewhereElse";

    </script>

答案 2 :(得分:0)

CSS选择器中的否定运算符是:not()所以:

var links = document.querySelector('a:not([id])');

或者有不止一场比赛:

var links = document.querySelectorAll('a:not([id])');

检查https://developer.mozilla.org/en-US/docs/Web/CSS/:not

答案 3 :(得分:0)

如果需要纯JS(你没有将jQuery设置为标记),并且在期望的<li>标记内有多个锚点,并且此<li>中只有一个锚没有id,请尝试:< / p>

var li_content = document.getElementById("sampleID"),
    anchors    = li_content.getElementsByTagName("A"),
    length     = anchors.length,
    i          = 0;

for(; i < length; i++) {
    if (!anchors[i].getAttribute("id")) {
        // your function is called here
    }
}

检查this Fiddle - 这似乎就是你要找的东西