我正在尝试选择一个没有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解决方案,那将是完美的。
答案 0 :(得分:4)
{"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])');
答案 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 - 这似乎就是你要找的东西