th,td {
padding: 5px;
}
</style>
<body>
<h2>The XMLHttpRequest Object</h2>
<form action="">
<select name="customers" onchange="showCustomer(this.value)">
<option value="">Select a customer:</option>
<option value="ALFKI">Alfreds Futterkiste</option>
<option value="NORTS ">North/South</option>
<option value="WOLZA">Wolski Zajazd</option>
</select>
</form>
<br>
<div id="txtHint">Customer info will be listed here...</div>
<script>
function showCustomer(str) {
var xhttp;
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xhttp.open("GET", "getcustomer.asp?q="+str, true);
xhttp.send();
}
</script>
</body>
</html>
嘿,很抱歉,这是一个基本问题:)只是研究了一些JavaScript的AJAX,我对onchange EventHandler中的此代码块中“ this”的使用感到困惑。似乎“ this”指的是选项元素,但我真的不明白如何或为什么。
编辑:似乎不是那么基本。
我阅读了有关“ this”的一般问题的详细答案
How does the "this" keyword work?
也是很棒的文章:
http://www.digital-web.com/articles/scope_in_javascript/
他们两个都为很多人服务,但并不能完全解决我的问题。
我无法弄清楚“ this”在带有JavaScript函数的HTML元素内使用时的确切行为是什么。
我希望有人能理解我的意思
答案 0 :(得分:-1)
这是指它所属的对象,例如
class dogs {
constructor () {
this.name = 'dogs'
console. log(this.nane) // returns dogs
this.bread = function () {
console. log(this.name) // returns undefined
this.type = "pug"
console. log(this.type) // returns pug
}
console. log(this.type) // undefined
console. log(this.bread.type) // pug
}
}
}