我试图通过给定元素的DOM节点"向上"迭代以获得具有属性"动画"的第一个父元素.
var el = evt.target;
console.log(el);
while (!el.hasAttribute('animated'))
{ el = el.parentNode; }
return el;
console.log(el);
Run Code Online (Sandbox Code Playgroud)
引发错误:
>>>Uncaught TypeError: Object #<HTMLDocument> has no method 'hasAttribute'
这怎么可能?我已经清楚地声明了变量el
,第一个日志是正确的.
<span id="local->ethernet->port3->rx_flow">q4234</span>
<span id="local->ethernet->port3->rx">q345</span>
<span id="local->ethernet->port1->rx_flow">128</span>
<span id="remote->id">128</span>
Run Code Online (Sandbox Code Playgroud)
我需要通过元素中的ID示例从中创建多维数组 <span id="local->ethernet->port3->rx_flow">q4234</span>
我需要的数组是 array["local"]["ethernet"]["port3"]["rx_flow"]="q4234"
我创建的功能是:
function make_cfg(){
var result=new Array();
var x=document.getElementById(*);
var len=x.length;
var arr;
for (var i=0; i<=len; i++;){
if(x[i].id){
if(x[i].id.indexOf("->") != -1) {
arr=x[i].id.split("->");
result=make_obj(result,arr);
}
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何发挥作用 make_obj()
我有一个名为file的 javascript 对象,我试图检查该对象是否包含 file.xhr.response 属性。我试过这样..
if (file.xhr.response) {
console.log(Exists);
} else {
console.log(Missing);
}
Run Code Online (Sandbox Code Playgroud)
当file.xhr.response存在时,这有效,但如果不存在,则会抛出错误......
Uncaught TypeError: Cannot read property 'response' of undefined
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
假设我有一个对象,
var myObj = {
"person": {
"name": 'adam',
"age": 25
"email": {
"address": "this@that.com",
"ccOnNot": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个数组
['person.name', 'person.age', 'person.email.address']
Run Code Online (Sandbox Code Playgroud)
我想循环数组并检查 myObj 是否具有数组中的字段。
如何才能实现这一目标?我根本无法像这样进行测试:
if myObj['person.name']
console.log('hr')
Run Code Online (Sandbox Code Playgroud) {error:true}
我从服务器获得了一个 JSON 对象 ( )。
我尝试检查对象是否包含键“error”,并且键存在,函数 hasOwnProperty
返回false
。
这是我的代码:
$http({
headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;' },
url: '/Modules/Partners/Mailing/SendMail.ashx',
data: $.param({ contact: JSON.stringify(contact), body: partnerObject.mailTemplate.longValue, title: "" }),
method: 'POST'
})
.success(function (data, status, headers, config) {
console.log(data);
console.log(data.hasOwnProperty('error'));
if (data.hasOwnProperty('error')) {
deferred.reject(contact);
} else {
deferred.resolve(contact);
}
//console.log(data)
})
.error(function (data, status, headers, config) {
deferred.reject(contact);
});
Run Code Online (Sandbox Code Playgroud)
在控制台中,我可以看到该对象包含返回的“error”hasOwnProperty('error')
键false
查看我们的一些应用程序代码,我发现了以下内容:
for (prop in aBunchOfData.properties) {
if (!aBunchOfData.properties.hasOwnProperty(prop)) continue;
doABunchOfProcessing(aBunchOfData.properties[prop]);
}
Run Code Online (Sandbox Code Playgroud)
据我了解,for ... in
只会循环遍历对象的“自己”属性。这里的支票能 hasOwnProperty
起到作用吗?如果可以,在什么条件下?
谢谢!
现在我正在编写一个关于JavaScript编码的实验室作品.我知道有一种类似的结构
if ('field' in object) {
/* Do something with object.field */
}
Run Code Online (Sandbox Code Playgroud)
用于确定一个名为field
true 的变量,object
即使它等于undefined也是如此.
我的Firefox Developer Edition 44能够确定数组中是否有这样的字段:
if (0 in array) {
/* Do something with first element */
}
Run Code Online (Sandbox Code Playgroud)
问题是:这种方法合法吗?它是生活标准的一部分吗?
它应该做什么:
让q成为具有这些元素的数组:
[ 5, <1 empty slot>, undefined, 5 ]
Run Code Online (Sandbox Code Playgroud)
然后:
0 in q
,2 in q
,3 in q
等于true
;1 in q
等于false
.我开始学习打字稿及其语言特征。我怀念的一件事是诸如when表达式或条件赋值之类的东西。就像是
val languange = "DE"
val test = when(languange) {
"DE" -> "HALLO"
"EN" -> "HELLO"
else -> "NONE"
}
Run Code Online (Sandbox Code Playgroud)
我发现在打字稿中实现这一点的唯一方法是:
const language = "DE"
var description: String;
if (language == "DE") {
description = "HALLO"
} else if (language == "EN") {
description = "HELLO"
}
Run Code Online (Sandbox Code Playgroud)
难道没有更方便的方法来实现这个吗?