Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用id属性值替换文本超链接并使其不可链接_Javascript_Html - Fatal编程技术网

Javascript 用id属性值替换文本超链接并使其不可链接

Javascript 用id属性值替换文本超链接并使其不可链接,javascript,html,Javascript,Html,我试图完成的是在单击文本后在网页上显示文本消息。新文本应替换我单击的文本。新文本应该是id属性的值。超链接意味着在第一次单击后消失(并且变得不可链接) 以下是我的一个尝试: <a href="#" onclick id="Ana"> Apasa textul 1</a> <script type="text/javascript"> $("#id").on('click', function() { document.getElementById(

我试图完成的是在单击文本后在网页上显示文本消息。新文本应替换我单击的文本。新文本应该是id属性的值。超链接意味着在第一次单击后消失(并且变得不可链接)

以下是我的一个尝试:

<a href="#" onclick id="Ana"> Apasa textul 1</a>


<script type="text/javascript">
$("#id").on('click', function() {
    document.getElementById("Ana").innerHTML = "<span> Ana </span>";
});
</script>

$(“#id”)。在('click',function()上{
document.getElementById(“Ana”).innerHTML=“Ana”;
});
应用于替换
标记的标记为

单击
Apasa textul 1


感谢您的帮助。

在您的PHP上,您必须这样做(将此代码放在页面顶部):

该警报将通过PHP向您显示回显值。从那里你想怎么做就怎么做。。。类似于
$('p').html(结果)

因为您正在进行ajax调用,所以不能依赖于您编写的内联代码,因为页面没有完全刷新。该代码在您第一次加载页面时执行,但因为在这种情况下,您没有通过POST(通常)在初始语句中传递参数,所以始终执行“else”

在我上面的代码中,如果不执行“exit;”调用ajax,您将在结果中收到整个页面。这就是为什么代码必须位于页面顶部,并且必须在后面调用退出。


/**第二行**/
2行
并不意味着在
AJAX
请求后执行,它只在正常请求整个页面时执行

要获得想要的结果,您可以:

  • JavaScript
    部分,当附加单击处理程序时,您需要防止
    a
    元素的默认行为(重定向到
    href
    属性所在的位置,如果
    #
    属性在大多数情况下,页面会滚动到顶部)。此外,为了区分请求是
    AJAx
    请求,您可以使用
    POST
    变量,例如设置为
    1
    ,在服务器端检查它

  • PHP
    部分中,检查
    $\u POST['isajax']
    (应该告诉我们有一个
    AJAX
    请求的变量)和
    $\u POST['name']
    是否已设置且
    $\u POST['isajax']
    等于
    1
    ,然后
    回送
    $\u POST['name']
    ,并停止脚本。此外,这些检查可能放在
    PHP
    文件的顶部

JavaScript
部分可能如下所示:

$('#Ana').click(function(e) {
  e.preventDefault(); /** prevents the link's default behavior **/
  var name = $(this).attr('id');
  $.ajax({
    type: "POST",
    url: "index.php",
    data: {
      isajax: 1, /** means we have an ajax request, it's not that  **/
      name: name
    },
    success: function(response) {
      alert(response)
    }
  })
});
PHP
部分(index.PHP
页面顶部)应该如下所示:

$('#Ana').click(function(e) {
  e.preventDefault(); /** prevents the link's default behavior **/
  var name = $(this).attr('id');
  $.ajax({
    type: "POST",
    url: "index.php",
    data: {
      isajax: 1, /** means we have an ajax request, it's not that  **/
      name: name
    },
    success: function(response) {
      alert(response)
    }
  })
});
if(isset($\u POST['isajax'],$\u POST['name'])&&$\u POST['isajax']==1){
echo$_POST['name'];
退出;/**不再执行其他行**/
}

有很多不同的方法可以做到这一点,但是如果您想使用内联函数调用,可以声明一个名为
swapTag()
(或任何您喜欢的)的自定义函数,它将生成一个新的
标记,然后用原始标记
id
值填充它,然后用新生成的元素替换原始dom元素

功能交换标签(el){
让newEl=document.createElement('span');
newEl.innerHTML=el.id;
el.parentNode.replaceChild(newEl,el);
}

你不需要这些东西

如果我了解全部内容,您希望在单击链接时:

  • 执行AJAX调用
  • 无论调用如何,都用其ID属性替换整个链接


是最快的方法,考虑到您的AJAX调用将在
performAjaxCall()

中,即使我执行“退出”,我仍然会接收整个页面:(尝试将数据类型:“text”添加到AJAX调用中..传递如下数据:{'name':name},如果(isset…位于索引的最顶端。php?set cache:false,这很奇怪,必须是cache。显示在哪里?看起来像什么?你想要工具提示?模态?另一页?文本替换?你想要新文本附加到旧文本?你的问题不清楚,我完全理解反对票。这里看起来你不需要ajax。在你的实际项目中是否有一些要求需要ajax?你真的需要ajax请求吗?在你的帖子中,你只想将
id
属性的值附加到超链接文本的末尾……或者你想在超链接之后添加它?我们需要在这里看到更多的html吗?请更新你的帖子以显示你的确切体验反恐执行局源代码。
Ana
(我只懂英语)。如果再次单击超链接,您希望的行为是什么?超链接是否意味着在第一次单击后消失(并变得不可点击)?当新的html看起来像
并且用户单击链接时,它是否会变成
?出于任何原因,标记是否需要保留为超链接?您也应该将此要求添加到您的问题中,这样您就不会继续收到错误的答案。
$('#Ana').click(function(e) {
  e.preventDefault(); /** prevents the link's default behavior **/
  var name = $(this).attr('id');
  $.ajax({
    type: "POST",
    url: "index.php",
    data: {
      isajax: 1, /** means we have an ajax request, it's not that  **/
      name: name
    },
    success: function(response) {
      alert(response)
    }
  })
});