javascript - 如何使用 jQuery 获取点击元素的 html 内容

标签 javascript jquery html css

我正在尝试获取特别点击的 div 的内部 html 内容,我有许多 div 元素。

看看我在下面使用的代码。

$(function() {

    $( "#try" ).click(function() {
        var clickedValue = $(this).find('div').text();
        alert(clickedValue);
    });

});
<div id="try">
    <div class="cchoice" style="background-color: blue;">B</div> 
    <div class="cchoice" style="background-color: red;">R</div> 
    <div class="cchoice" style="background-color: yellow;">Y</div> 
    <div class="cchoice" style="background-color: black;">B</div> 
    <div class="cchoice" style="background-color: gray;">G</div> 
    <div class="cchoice" style="background-color: white;">W</div> 
</div>

我想以这样的方式进行操作,即当单击背景颜色为蓝色的 div 时出现 B,但我的操作方式似乎有问题。由于某些原因,我不能为那些 div 集提供 id 属性,它们必须具有相同的类。

上面代码的问题是,当我点击 6 个 div 元素中的任何一个时,clickedvalue 将是 BRYBGW。

最佳答案

$(this).find('div') 将返回 #try 元素中的所有 div 元素,而不是你想要的仅针对点击的 div

您可以使用 event.target

$(function() {
  $("#try").click(function(e) {
    var clickedValue = $(e.target).text();
    alert(clickedValue);
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="try">
  <div class="cchoice" style="background-color: blue;">B</div>
  <div class="cchoice" style="background-color: red;">R</div>
  <div class="cchoice" style="background-color: yellow;">Y</div>
  <div class="cchoice" style="background-color: black;">B</div>
  <div class="cchoice" style="background-color: gray;">G</div>
  <div class="cchoice" style="background-color: white;">W</div>
</div>


但我建议使用点击处理程序来定位实际的子元素....通过直接将处理程序绑定(bind)到它们或通过使用事件委托(delegate)

$(function() {
  //or $("#try > div").click(function(e) {
  $("#try").on('click', 'div', function(e) {
    var clickedValue = $(this).html();
    alert(clickedValue);
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="try">
  <div class="cchoice" style="background-color: blue;">B</div>
  <div class="cchoice" style="background-color: red;">R</div>
  <div class="cchoice" style="background-color: yellow;">Y</div>
  <div class="cchoice" style="background-color: black;">B</div>
  <div class="cchoice" style="background-color: gray;">G</div>
  <div class="cchoice" style="background-color: white;">W</div>
</div>

关于javascript - 如何使用 jQuery 获取点击元素的 html 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26541159/

相关文章:

javascript - 如何在 JavaScript 中使用非拉丁字符作为字符串

jquery - 在铁路应用程序的 link_to 标签中添加工具提示

HTML 容器元素没有高度

html - 平板电脑上的背景图像无法调整(横向 View )

javascript - 在 javascript 和 html 中转义撇号(单引号)字符

javascript - JavaScript 中的继承 : How can I call the object parent?

javascript - jQuery 循环插件 : Why the pager doesn't show the exact number of images in this official demo?

jquery - 如何使用键盘、AJAX 和 jQuery 将 div 移动到预定义的路径

javascript - 不在 <head> 标记中加载 jQuery 是否有负面影响?

javascript - 固定侧边栏对于浏览器来说太高(底部被切断)