无法使用 jQuery 重置 div 中的文本



这应该是一个简单的答案,我已经有一段时间没有做任何 js 了

我的 HTML 中有一个提交按钮和一个div :

<input type="submit" name="submit"/>
<div name="result">result here </div>

单击提交按钮时,我想更改div 中的文本,我的代码如下所示:

$('input[name=submit]').click(function(){   
  $('div[name=result]').val('results from database ')   //set new text   
});

有人指出为什么这不起作用?

检查这个

$(function(){
  $('input[name=submit]').click(function(){   
  $('#result').text('results from database ')   //set new text   
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<input type="submit" name="submit"/>
    <div id="result">result here </div>

首先,在div 中将名称属性更改为类。

<div class="result">result here </div>

然后,使用text方法在非输入元素中设置值。 text 只应在值为纯文本(无 HTML 元素)时使用;

$('div.result').text('results from database');

如果数据库中的结果包含 HTML,请使用html方法

$('div.result').html('results from database');

工作演示

您可以

设置div 的 ID 而不是名称。如下所示:

<div id="result">result here </div>

现在,您可以按 ID 更改值,如下所示:

$('#result').val('results from database ');

> eaay 方法是使用类或 ID 来显示结果

<input type="submit" name="submit"/>
<div class="result">result here </div>
<script>
jQuery(document).ready(function ($) {
  $('input[name=submit]').on('click', function (){
      $('.result').html('results from database');
  }); 
}); 
</script>

<input type="submit" name="submit"/>
<div id="result">result here </div>
  <script>
jQuery(document).ready(function ($) {
  $('input[name=submit]').on('click', function (){
      $('#result').html('results from database');
  }); 
}); 
</script>
<</div> div class="one_answers">div

元素不应该有 name 属性。应使用 id 属性:

<input type="submit" name="submit"/>
<div id="result">result here </div>

然后 javascript/jQuery,请注意div 的.html,你也可以使用 .text() . 你有div 元素的.val().val()只适用于输入元素,它获取或设置 value 属性。

$('input[name=submit]').click(function(){   
  $('#result').html('results from database ')   //set new text   
});

另外,我建议为按钮使用id属性,因为您可能希望选择多个共享相同name属性值的按钮name不必是唯一的,但id确实如此。因此,如果您只想要一个特定的按钮,则应使用 id 属性和选择器。

最好是

这样写你的 html:

<input type="submit" name="submit"/>
<div data-name="result">result here </div>

然后使用以下脚本更改div 的文本:

$('input[name=submit]').click(function(){   
    $('div[data-name="result"]').text('results from database ')   //set new text   
    return false;    // For not submitting the form so that 
                     // you can see the changes if in case 
                     // page is getting submitted it won't submit
});

在您的代码中,您犯了两个错误,因此它不起作用。您的div 选择器在结果周围缺少引号,val 应该即 $('div[name=result]').val(") 应该替换为 $('div[name="result"]').text(")。

val

被文本替换,因为 val 用于具有默认值属性的表单元素,该属性用于在提交时将值发送到服务器。

此外,应避免对表单元素以外的普通 dom 元素使用 name 属性。代替它们,您可以定义自定义属性,如"数据名称"。

$('input[name=submit]').click(function(){   
  $('div[name=result]').text('results from database ')   //set new text   
});

最新更新