作者mickeyboy (mickey)
看板Ajax
標題[問題] div取值問題
時間Fri Dec 19 08:59:10 2014
卡關了一陣子,想請問關於使用JQuery取值的問題
如果是<div id="a">123</div> 這樣使用$('#a').text();
可以取出 123 這個值
但如果<div id="a"> </div> 裡面是AJAX回傳的資料
使用.text()取值會將我的AJAX處理頁面的JS程式碼
也一併顯示,無法達到只取得回傳值
也測試過 val() html() ...等
想請問前輩,問題卡點在哪裡?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.253.139.26
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Ajax/M.1418950753.A.159.html
1F:推 Peruheru: 對不起,看不懂你在寫什麼 12/19 09:06
2F:→ Peruheru: 用.text取值會顯示js程式碼?你怎麼做到的? 12/19 09:07
3F:→ Peruheru: 你是把<script></script>片段寫在這裡面嗎? 12/19 09:08
4F:→ Peruheru: 如果是這樣,那你本來就不應該取他的值阿,你該把結果放 12/19 09:08
5F:→ Peruheru: 在只會有"值"的地方,取出來才會是"值"阿 12/19 09:09
6F:→ Peruheru: 比如說裡面再放一個<div>來存放值 12/19 09:10
7F:→ Peruheru: 反過來說,為什麼你要把程式碼放在你覺得應該放值的地方 12/19 09:11
8F:推 mrbigmouth: 放在div裡面的不會是程式碼 只是文字而已 12/19 09:17
不好意思,敘述不清楚
<div> </div>原本是用來顯示ajax的值,也有成功顯示
聽了上面前輩的疑問之後,突然想到會不會是因為小弟的ajax寫法的問題
如下
$.ajax({
url: "ajaxss.php?outputval="+x,
type: "GET",
success: function(response) {
$('#a').html(response);
},
error: function() {
console.log("ajax error!");
}
});
這是丟給<div id="a">去顯示,(就單純顯示值無顯示程式碼文字)
但在取值的部分就會抓到程式碼(我是用alert去看取值為何)
※ 編輯: mickeyboy (111.253.139.26), 12/19/2014 10:30:29
9F:→ mrbigmouth: 這沒有全部程式碼無法猜測錯誤在哪 12/19 11:52
10F:推 Peruheru: 你如果網站有上線的話,直接給網站會更好找問題 12/19 12:28
11F:推 jhunkyoiori: 因為你把值塞在<div id="a">裡面, 12/19 13:01
12F:→ jhunkyoiori: 所以你抓$('#a').text()會顯示<div>裡面的內容 12/19 13:02
13F:→ jhunkyoiori: 你要在抓下一層的資料的話 你的選擇器那邊要再指定 12/19 13:03
14F:→ jhunkyoiori: 再 12/19 13:04
15F:推 Peruheru: 等等,所謂的程式碼難道是指Dom結構? 12/19 13:11
16F:→ Peruheru: 這誤會大了 12/19 13:11
17F:→ Peruheru: HTML的標籤並不屬於"程式碼",說程式碼我還以為是JS... 12/19 13:12
因為我是單機在撰寫所以無法放在網路上給大家幫忙
真是抱歉,小弟的結構是 從A頁用AJAX到B.php程式頁 會顯示於A頁的<div></div>中
但在取值上,會將B.php的JS碼也顯示出來(以alert來看)
小弟的B.php 是放了一些迴圈以及JS程式碼
而用alert 看取值 是取得了
<title>測試</title> --> 測試 (HTML碼沒顯示但似乎以空白呈現)
還有<script language="JavaScript"> </script> 之間的JS程式碼
感謝各位的指教 小弟繼續努力除錯
※ 編輯: mickeyboy (111.253.139.26), 12/19/2014 13:59:04
18F:→ KawasumiMai: 1.使用PHP測試環境應該不是單機吧?難不成沒PHP環境? 12/19 16:11
19F:→ KawasumiMai: 2.AJAX的傳回值端看單獨執行B.php會印出什麼東西 12/19 16:11
20F:→ KawasumiMai: 你直接連B.php,看原始碼,看到什麼就是接到什麼 12/19 16:12
21F:→ KawasumiMai: 包含HTML標籤啦JS什麼的,所以你不想接到JS卻寫JS 12/19 16:12
22F:→ KawasumiMai: 就錯了,一般除了刻意這麼做,不然AJAX的後端只會 12/19 16:12
23F:→ KawasumiMai: 印出一些基本的資料串,或是JSON等 12/19 16:13
24F:→ KawasumiMai: 把JS傳回來並不是不對,但看樣子你不是想要這麼做 12/19 16:14
25F:推 crossdunk: 他的意思應該是他用localhost側是吧 12/22 09:12
26F:推 crossdunk: 如果你跑出來是<title>測試</title> 12/22 09:16
27F:→ crossdunk: 那你試試看 $('#id title).text(); 12/22 09:17
28F:→ crossdunk: 問題應該是出在你的b.php 你傳回來應該有給他標籤吧 12/22 09:17