jQuery設定和獲取span的內容 (詳解)
阿新 • • 發佈:2018-12-30
先看個示例,示例程式碼如下:
<html> <head> <SCRIPT language=JavaScript src="js/jquery.min.js"></SCRIPT> <SCRIPT language=JavaScript> var test1=$("#spId").val(); var test2=$("#spId").html(); var test3=$("#spId").text(); alert("val的值:" + test1); alert("html的值:" + test2); alert("text的值:" + test3); </script> </head> <body> <span id="spId">aaaa</span> </body> </html>
alert的結果 如下
【val的值:undefined】
【html的值:null】
【text的值:】
上面三種都沒有取得想要的值,之所以沒有取到是因為html是從上往下解析的,在解析到js裡的$("#spId")時,下面這個span還不存在,當然就取不到了。
如果改成下面這樣
<html> <head> <SCRIPT language=JavaScript src="js/jquery.min.js"></SCRIPT> </head> <body> <span id="spId">aaaa</span> <SCRIPT language=JavaScript> var test1=$("#spId").val(); var test2=$("#spId").html(); var test3=$("#spId").text(); alert("val的值:" + test1); alert("html的值:" + test2); alert("text的值:" + test3); </script> </body> </html>
js在span的後面解析,span就有了。另外,jquery的做法是用ready函式包含這些程式碼,放哪就無所謂了。它的作用就是在載入完整個頁面後才執行包含的js,如:
<script type="text/javascript"> $(document).ready(function(){ var test1=$("#spId").val(); var test2=$("#spId").html(); var test3=$("#spId").text(); alert("val的值:" + test1); alert("html的值:" + test2); alert("text的值:" + test3);
});
</script>
一、所以,span 的設定和獲取如下:
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("#spId").text("testSpan");
alert("text的值:" + $("#spId").text())
});
});
</script>
</head>
<body>
<div><span id="spId"><a href="#">aaaa</a></span></div>
<button>切換</button>
</body>
</html>
二、
如果想獲得html程式碼,把text換成html就可以了,
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
alert("text的值:" + $("#spId").text())
alert("html的值:" + $("#spId").html())
});
});
</script>
</head>
<body>
<div><span id="spId"><a href="#">aaaa</a></span></div>
<button>切換</button>
</body>
</html>
設定html,並取得 html, 如下
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
alert("text的值:" + $("#spId").text() + "\n" +
"html的值:" + $("#spId").html() )
$("#spId").text("testSpan")
alert("text的值:" + $("#spId").text() + "\n"+
"html的值:" + $("#spId").html() )
$("#spId").html("<p>testSpantest</p>")
alert("text的值:" + $("#spId").text() + "\n"+
"html的值:" + $("#spId").html() )
});
});
</script>
</head>
<body>
<div><span id="spId"><a href="#">初期值</a></span></div>
<button>切換</button>
</body>
</html>
結果:
三、注意點:
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
<span style="background-color: rgb(255, 204, 204);">$("#spId").text("testSpan");</span>
alert("text的值:" + $("#spId").text())
<span style="background-color: rgb(255, 204, 153);">alert("html的值:" + $("#spId").html())</span>
});
});
</script>
</head>
<body>
<div><span id="spId"><a href="#">aaaa</a></span></div>
<button>切換</button>
</body>
</html>
結果
此時 ,獲取的html()為 【testSpan】,而不是【<a href="#">testSpan</a>】