我正在学习Jquery,我无法弄清楚为什么没有JQuery行执行,而javascript行也是如此。 当我用浏览器打开它时,控制台显示“hello world”和“undefined”。如果我将这些行放在控制台中,它们将按预期执行。 这是我的代码:`
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title> cim </title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"> $('div:nth(0)').attr("class","marked") </script>
<script>
$(document).ready(funk())
function funk() {
$("div").css("border", "3px solid red");
console.log("hello world");
$("div:nth(0)").attr("class","marked");
console.log($("div:nth(0)").attr("oo"));
$("div").append("LLLLLLLLLLLLLLLLLLLLL");
}
</script>
</head>
<body>
<div oo="ooo">
<p> blah </p>
<p> blah <br></p>
<p>blah</p>
</div>
<div>
<p> asd</p>
<p> asd</p>
<p > asd</p>
</div>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
</body>
</html>enter code here`
答案 0 :(得分:4)
一些问题
script
元素中运行代码并链接到外部文件。因此,第一个中的代码将被忽略func
方法并且DOM尚未就绪,因此未找到所有元素:nth
选择器。 :nth-child
或:eq
您需要的是
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(funk);
function funk() {
$("div").css("border", "3px solid red");
console.log("hello world");
$("div:nth(0)").attr("class","marked");
console.log($("div:eq(0)").attr("oo"));
$("div").append("LLLLLLLLLLLLLLLLLLLLL");
}
</script>
答案 1 :(得分:1)
将$(document).ready(funk())
更改为此$(document).ready(function () {funk();});