<!DOCTYPE html>
<html>
<head>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
function preview(){
temp = $(this).innerHTML;
testwin= open("", "testwin","status=no,menubar=yes,toolbar=no");
testwin.document.open();
testwin.document.write(temp);
testwin.document.close();
}
</script>
<table width="100%" class="am-table am-table-bordered am-table-radius am-table-striped">
<tbody>
<tr>
<td onclick="preview()">dghfh</td>
</tr>
</tbody>
</table>
</html>
Lepaskan parameter ke pratonton fungsi() yang anda isytiharkan, kemudian berikan nilai parameter kepada temp pembolehubah, dan akhirnya tukar panggilan kepada onclick=" preview(this.innerHTML)".
Ujian peribadi, ia berfungsi
Bagi $ (this).innerHTML This in ialah objek penyemak imbas, bukan objek jq
Pratonton fungsi yang ditulis dalam onclick pada elemen menghala ke tetingkap objek global, bukan ke elemen
$(ini) ialah objek jq, jadi gunakan $(this).html()
$(this)[0].innerHTML; seperti ini
Anda boleh berhenti dan lihat apakah $(ini) yang anda tulis, ia harus merujuk kepada tetingkap, bukan td yang anda mahukan
$(ini) ialah persekitaran konteks yang dibalut oleh jquery, dan kaedah yang ditentukannya diperlukan untuk mendapatkan serpihan statik dalaman.
Dua cara untuk mendapatkan:
Tulisan asli: this.innerHTML
jquery: $(this).html()
jq+Native: $(this)[0].innerHTML atau this.get(0).html()
Adakah anda mahu orang asli atau jq