我有这个锚链接:
<li><a class="tab" id="watchTicket" href="#" onclick="CallPage('/section/tickets/view-ticket?action=watch&seq=<?php echo $_GET["seq"]; ?>');"><?php echo ($TicketWatched ? 'Un-Watch' : 'Watch'); ?></a></li>
我希望能够使用jquery更改其中的文本,我尝试过:
<script type="text/javascript">
$("a#watchTicket").text('Watch');
</script>
和
<script type="text/javascript">
$("li a#watchTicket").text('Watch');
</script>
但两者都没有更改文本,控制台中没有错误
我有这个jquery函数:
function CallPage(url) {
$.ajax({
url: url,
dataType: 'jsonp',
success: function(data){
}
});
}
调用页面,这是锚OnClick
所有这些代码都在一个页面上,我更改了页面顶部的文本 - 即使用PHP和JQuery:
<?php
if($_GET["action"] == 'watch' && isset($_GET["seq"])) {
// SQL Query here
?>
<script type="text/javascript">
$(document).ready(function(){
$("a#watchTicket").text('Watch');
});
</script>
<?php
}
?>
然后实际的锚链接在此代码
之下更新
我刚刚将我的功能改为:
function WatchTicket() {
$.ajax({
url: 'view-ticket?seq=<?php echo $_GET["seq"]; ?>&action=watch',
dataType: 'jsonp',
success: function(data){
var text = $("a#watchTicket").text();
if(text === "Watch") {
$("a#watchTicket").text('Un-Watch');
} else {
$("a#watchTicket").text('Watch');
}
}
});
}
我在锚标记的OnClick
中调用
但是现在虽然通话成功,但这并没有改变文字吗?
答案 0 :(得分:1)
如果jQuery代码因未知原因而无法运行,您可以尝试使用javascript。
function WatchTicket() {
$.ajax({
url: 'view-ticket?seq=<?php echo $_GET["seq"]; ?>&action=watch',
dataType: 'jsonp',
success: function(data){
var link_node = document.getElementById('watchTicket');
var txt = "Watch";
link_node.innerHTML = link_node.innerHTML === txt ? 'Un-Watch' : txt;
}
});
}
如果它没有工作,那么Ajax请求可能会失败。
答案 1 :(得分:0)
您的代码应该有效。尝试用
包装它$(document).ready(function(){
//your code here
});
更新:
您应该在成功回调中添加$("a#watchTicket").text('Watch');
和任何相关代码,因此当ajax调用成功完成时,它会更新锚文本。
答案 2 :(得分:0)
尝试将<script>
标记放在if($_GET["action"] == 'watch' && isset($_GET["seq"])) { ... }
php标记之外。
如果页面是php:
<a id="watchTicket" ... ></a> //your link
<?php if(){ ...} ?> //the php code
<script>
$(document).ready(function(){
$("a#watchTicket").text('Watch');
});
<script>
确保jQuery正确加载。代码应该工作。
编辑:
如果您想在加载'callPage'之后发生,请将您的$("a#watchTicket").text('Watch');
放在success: function(data){
部分内。