JQuery 和访问博客文章的嵌套输入元素的值

标签 jquery blogs

我正在开发自己的博客,类似于 Facebook 的某种克隆版。我需要能够删除一些帖子,而我计划做的就是在每个帖子中插入一个带有帖子 ID 的隐藏(尚未隐藏)输入。所以我为每篇文章都有一个大字符串,如下所示:

    $('#blog').append('<div class="blogPost"><div class="postTitre">' +title + '</div>' + 
                          '<div class="postDescription">' + description + '</div>' + 
                          '<div class="postTimeStamp">' + timestamp + '</div>' + 
                          '<embed class="embedPDF" src="./uploads/' + name + '#toolbar=0&navpanes=0&scrollbar=0"/>' + 
                          '<div class="closeDelete">
                              <input type="text" name="txtID" readonly="readonly" value="' + id + '" />X
                              <div class="close-text">DELETE</div>' +
                          '</div>
                       </div>');

我需要访问名为 txtID 的内部输入类型,该类型将被隐藏。

我尝试了很多东西来让它发挥作用,但没有一个能达到我想要的效果。现在,我有这段使用事件委托(delegate)的代码,但不确定如何获取文本输入的值:

            //THIS WILL FIRE THE DELETE POST EVENT
            $("#blog").on("click", "div.closeDelete", function(){
                var id = $("div.closeDelete").find("input[name=txtID]").val();
                alert("close delete this: " + id + " post");
            });

最佳答案

this 将是单击的 div.closeDelete
用它来查找对应的id就可以了

var id = $(this).find('input[name="txtID"]').val();  // instead of $("div.closeDelete").find(...)

$("#blog").on("click", "div.closeDelete", function() {
  var id = $(this).find('input[name="txtID"]').val();
  console.log("close delete this: " + id + " post");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="blog">
  <div class="blogPost">
    <div class="postTitre">title</div>
    <div class="closeDelete">
      <input type="text" name="txtID" readonly="readonly" value="123" />X
      <div class="close-text">DELETE</div>
    </div>
  </div>
  <div class="blogPost">
    <div class="postTitre">title</div>
    <div class="closeDelete">
      <input type="text" name="txtID" readonly="readonly" value="342" />X
      <div class="close-text">DELETE</div>
    </div>
  </div>
  <div class="blogPost">
    <div class="postTitre">title</div>
    <div class="closeDelete">
      <input type="text" name="txtID" readonly="readonly" value="486" />X
      <div class="close-text">DELETE</div>
    </div>
  </div>
</div>

关于JQuery 和访问博客文章的嵌套输入元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815295/

相关文章:

http - 为什么使用 trackbacks 而不是 HTTP Referer header ?

ruby-on-rails - 在 Ruby on Rails 中隐藏字段

jquery - 我可以使用 jQuery 的 AJAX 将表单信息提交到 Google Spreadsheets 吗?

javascript - 检测何时将文件拖到文件输入上

javascript - 根据所选产品从数据数组填充价格

javascript - 如何在 knockout.js 中实现 observable "bridge"?

jquery - 制作具有倒置背景的 Jekyll 站点页面

javascript - 不使用数据库从服务器获取 JSON 格式的响应?

php - 将帖子正文存储在数据库或文件中?

html - 搜索输入折叠