我正在尝试从 last.fm API 附加一些 JSON 数据,
我一直在几个阶段使用alert()来验证API是否被正确解析,它是,
这让我得出这样的结论: getElementById().appendChild() 不起作用,下面是我设置的测试页面的 URL:
http://mutant-tractor.com/tabtest.html
代码在这里
function calculateDateAgo(secAgo) {
var agoString, agoRange, agoScaled;
if(secAgo >= (agoRange = 60*60*24))
agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"days":"day") + " ago"
else if(secAgo >= (agoRange = 60*60))
agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"hours":"hour") + " ago"
else if(secAgo >= (agoRange = 60))
agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"minutes":"minute") + " ago"
else if(secAgo >= -60)
agoString = "blastin' out now";
else
agoString = "soon ;)";
return agoString …Run Code Online (Sandbox Code Playgroud) 我有以下代码段:
myPanel.getElement().setId("left-content");
//...
//...
Element e = DOM.getElementById("left-content");// this returns NULL!
Run Code Online (Sandbox Code Playgroud)
这是一个更长的代码段:
public class RootComposite extends Composite
{
public RootComposite(int comboSelectedIndex)
{
VerticalPanel verticalPanel = new VerticalPanel();
initWidget(verticalPanel);
VerticalPanel containerPanel = new VerticalPanel();
containerPanel.setSpacing(1);
verticalPanel.add(containerPanel);
verticalPanel.setSize("100%", "100%");
RightPanelMainComposite rightPanelMainComposite = new RightPanelMainComposite();
VerticalPanel rightcolVerticalPanel = new VerticalPanel();
rightcolVerticalPanel.setStyleName("rightcol");
VerticalPanel searchVerticalPanel = new VerticalPanel();
searchVerticalPanel.setStyleName("search");
rightcolVerticalPanel.add(searchVerticalPanel);
searchVerticalPanel.add(rightPanelMainComposite);
ContentComposite contentComposite = new ContentComposite();
HorizontalPanel leftContentPanel = new HorizontalPanel();
containerPanel.add(leftContentPanel);
leftContentPanel.getElement().setAttribute("id", "left-content");
DOM.getElementById("left-content"); // returns NULL !!!
// ....
}
Run Code Online (Sandbox Code Playgroud)
以上综合报道正在加入RootPanel …
有没有办法从典型的 ajax 函数获取响应,以便可以用 getElements 对其进行剖析?我已经尝试过了query.responseText.getElementById,但效果和看起来一样糟糕。不过,您应该能够通过看到该片段来了解我想要实现的目标。我只需要从 ajax 响应中获取元素,就像获取普通 DOM 对象一样。
另外,请不要建议使用 jQuery。当我有很多脚本并且可以使用它的很多功能时,我会使用它,但在这种情况下,我只有一个简短的脚本和一个 70 倍大小的库,这似乎是一种浪费。
我试过看看stackoverflow,但不能找到和我一样的问题 - 我确定这个问题很容易解决,但不知何故......它不起作用.
我有一些输入,它们将以计算器格式添加/乘/减/除等.我想要的是getElementById通过在我的功能块之外声明变量来删除不必要的引用(我不想要任何花哨的多重getElementById赋值).
我的Javascript如下:
//Declarations: designed to minimze calls to document.getElementByID
var number1 = document.getElementById("num1");
var number2 = document.getElementById("num2");
var numAnswer = document.getElementById("answer");
//Add together two numbers
function add()
{
numAnswer.value = parseFloat(number1.value) + parseFloat(number2.value);
}
Run Code Online (Sandbox Code Playgroud)
它让我疯狂 - 如果我拿出变量而只是使用普通的旧document.getElementById,一切正常.这应该很容易,但它只是不起作用.我已经检查了拼写,这一切似乎都没问题 - 有什么我想念的吗?
Quick Cross Browser JS问题,在设置文本框的值时:
document.getElementById("balanceText").innerText = "111";
Run Code Online (Sandbox Code Playgroud)
和
document.getElementById("balanceText").value = "111";
Run Code Online (Sandbox Code Playgroud)
两者都在IE中工作,
但它们不适用于Chrome,FF,Opera或Safari.
是否有一种替代方法可以在这些浏览器中使用?
我需要根据body标签ID更改页面内的内容.
我的代码似乎不起作用,你能帮忙吗?
function changeHeaderTitle(){
var bodyId = document.getElementsByTagName("body").id;
alert(bodyId);
}
Run Code Online (Sandbox Code Playgroud)
这只是回应"未定义".
这是我的代码 - http://jsfiddle.net/EC6jT/
<input type="text" id="mytext">
<a href='javascript:elem();'>click</a><br/>
<input type="text" id="mytext2">
<a href='javascript:document.getElementById("mytext2").value = "My default value";'>click</a><br/>
<script type="text/javascript">
function elem() {
document.getElementById("mytext").value = "My default value";
};
</script>
Run Code Online (Sandbox Code Playgroud)
为什么第一个"点击"链接正常工作而第二个链接不正常?为什么第二个"点击"链接会删除所有内容?
谢谢.
我试图通过将我的 html 文档使用的 SVG 文件移动到对象标记中来使阅读体验更愉快。
SVG 的部分目的是使其可点击,从而改变其颜色。这是通过 JavaScript 完成的。
只要 SVG 位于父 html 中,一切就可以正常工作,但一旦我尝试使用对象标签,JavaScript getElementById 就会失败(console.log(svg_rectangle) 返回 null)。我假设 DOM 不再知道 SVG 元素一旦移动到对象标签中,所以它与范围有关?
谷歌搜索这个不太走运,我不是 DOM 专家,所以也许我没有使用正确的关键字。
我通过 Django 运行它,因此是 {{ STATIC_URL }}。
超文本标记语言
<html>
<body>
<object id="svg1" data="{{ STATIC_URL }}svg/test.svg" type="image/svg+xml"></object>
<!--
<svg
id="svg_square"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
height="256"
width="256"
version="1.1"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<g class="region">
<rect id="rect_front" transform="scale(1,-1)" height="64" width="64" y="-128" x="64" onclick="parent.testFunction(this.id)"/>
</g>
</svg>
-->
<script src="{{ STATIC_URL }}archive_140520/handle_svg.js" type="text/javascript"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
JavaScript
function testFunction(id){
console.log(id)
var svg_rectangle = document.getElementById(id);
console.log(svg_rectangle) …Run Code Online (Sandbox Code Playgroud) 我已经玩了A2一段时间了,我明白我的问题是由于所有内容初始化并在A2中运行的顺序,并且由于*ngIfhtml但是我不明白的是为什么或如何获得我想要的结果.
使用以下测试组件:
@Component({
moduleId: module.id,
selector: 'test',
templateUrl: 'test.component.html' })
export class TestComponent implements OnInit {
test: any;
settest():void{
//this.test = {test: 1}; --This works using ngAfterViewInit
//This causes the console.log in ngAfterViewInit to be null
this.route.params
.switchMap((params: Params) => this.testService.getTest(params['id']))
.subscribe(test => {
this.test = test;
});
}
ngOnInit(): void
{
this.settest();
console.log(document.getElementById('test1')); --Null
console.log(document.getElementById('test2')); -- Not NUll
}
ngAfterViewInit(): void
{
console.log(document.getElementById('test1')); --Null
console.log(document.getElementById('test2')); -- Not NUll
}
}
Run Code Online (Sandbox Code Playgroud)
和 test.component.html
<div *ngIf="test">
<div id="test1"></div>
</div> …Run Code Online (Sandbox Code Playgroud) 我想选择动态创建的特定 html 元素。但是创建 html 块的“list”变量充满了 http 请求,并且 dom 没有立即加载。我想通过从 url 获取且等于列表项 id 的 id 选择元素。因此,即使我选择 ngAfterViewInit 挂钩中的元素,所选元素也是未定义的。我该如何选择?
超文本标记语言
<div id="wrapper">
<ng-container *ngFor="let item of list">
<div [id]="item.id">{{item.content}}</div>
</ng-container>
</div>
Run Code Online (Sandbox Code Playgroud)
TS
list = null;
selectedItemId = null;
ngOnInit() {
this.selectedItemId = this.activatedRoute.snapshot.params.id;
}
getList() {
this.http.get('http://api.example.com').subscribe(
result => this.list = result
)
}
ngAfterViewInit() {
const htmlElement= document.getElementById(this.selectedItemId);
/* Some codes that using htmlElement variable */
}
Run Code Online (Sandbox Code Playgroud) getelementbyid ×10
javascript ×8
angular ×2
appendchild ×1
dom ×1
gwt ×1
hook ×1
html ×1
innertext ×1
json ×1
last.fm ×1
object-tag ×1
responsetext ×1
svg ×1