【问题标题】:Post particular values to particular div with jquery使用 jquery 将特定值发布到特定 div
【发布时间】:2013-02-23 09:50:03
【问题描述】:

如何让 jquery 将特定 span 中的值发布到 php,然后将值获取到特定 div?我想要这样的东西:点击类“更多”的跨度,将值从这个li发布到php,然后通过jquery获取id为“test”的div。

这里我有一个 php 给我的代码。如果需要,我可以为元素添加唯一的“id”。

 <li>
    <span class="word">one word</span>
    <span class="numb">1</span>

    <span class="more">more</span>
    <div id="test"></div>
 </li>
 <li>
    <span class="word">another word</span>
    <span class="numb">13</span>

    <span class="more">more</span>
    <div id="test"></div>
 </li>

问题是使用这个 jquery 我只发布了包含类“.word”的第一个跨度,但我只想发布跨度所在的跨度而不是它。并再次将值获取到第一个 id 为“test”的 div,而是在单击 span 的 div 中。我的 jquery 代码是:

 $('.more').live("click",function() {

 var ID = $('.word').test();
 var DI = $('.numb').text();


      $.ajax({
           type:"POST",
           data: "value="+ ID + "&numb="+ DI,
           cache: false, 
           url: "more.php",
           success: function(msg){
                $('#test').html(msg).fadeIn('slow');
           }               
      });     
 });

通过将 var ID = $(this).attr("id"); 而不是 var ID = $('.word').test(); 添加到 jquery 和 php &lt;span id="&lt;?php echo $word; ?&gt;" class="more"&gt;more&lt;/span&gt; 我可以发布 word 的唯一值。但是其他值呢?主要问题是发布到跨度按钮“更多”所在的下一个div。

【问题讨论】:

    标签: php jquery


    【解决方案1】:
    var ID = $('.word').test();
    

    替换为

    var ID = $('.word').text();
    

    另外请使用.on jQuery 函数而不是.live,因为.live 已弃用。

    完整的 jQuery 代码

    $(function()
    {
        $('.more').on("click",function()
        {
            var clickedDiv = $(this);
            var ID = clickedDiv.parent().find('.word').text();
            var DI = clickedDiv.parent().find('.numb').text();
    
            $.ajax(
            {
                type:"POST",
                data: "value="+ ID + "&numb="+ DI,
                cache: false, 
                url: "more.php",
                success: function(msg)
                {
                    clickedDiv.find('div[custom_id="test"]').html(msg).fadeIn('slow');
                }               
            });     
        });
    });
    

    还有一件事不要对DOM重复相同的ID

    ID 必须是唯一的。

    为此我使用了&lt;div custom_id = "test"&gt;&lt;/div&gt;

    更新的 HTML

    <li>
        <span class="word">one word</span>
        <span class="numb">1</span>
    
        <span class="more">more</span>
        <div custom_id = "test"></div>
    </li>
    <li>
        <span class="word">another word</span>
        <span class="numb">13</span>
    
        <span class="more">more</span>
        <div custom_id = "test"></div>
    </li>
    

    【讨论】:

    • 感谢您的帮助,但我有一些问题。发布跨度的唯一值的第一件事是工作。第二个似乎clickedDiv.find('div[custom_id="test"]').html(msg).fadeIn('slow'); 对我不起作用。我和你有相同的 div:`
      `,我什至尝试向该 div 添加唯一 ID,但它什么也做不了
    • @zmogusnamas 请查看更新后的答案 我已添加 html 请确保 html 与答案中的相同...
    • 是的,一切都一样。当我尝试使用$('.more').on("click",function() 时,它根本不起作用。我的 Jquery 的版本是 1.7.1。也许那里有可能有一种 next() ? /// 我试过clickedDiv.next().html(msg).fadeIn('slow'); 效果很好。谢谢!
    【解决方案2】:

    如果您没有在 php 端做任何事情,即使没有 ajax 请求也可以解决。 检查此代码:

    在 html 中使用 class 而不是 id 制作 div。

    <li>
        <span class="word">one word</span>
        <span class="numb">1</span>
    
        <span class="more">more</span>
        <div class="test"></div>
     </li>
     <li>
        <span class="word">another word</span>
        <span class="numb">13</span>
    
        <span class="more">more</span>
        <div class="test"></div>
     </li>
    

    然后

    $('.more').click(function (){
    
     var ID = $('.word').text();
     var DI = $('.numb').text();
    
     var Data = "value="+ ID + "&numb="+ DI;
    
     $(this).closest('.test').html(Data); // use anyone of them
     or 
     $(this).sibling('.test').html(Data); // use anyone of them
    
    });
    

    这将完美地工作。这是更新的代码

    【讨论】:

    • 查看上面我编辑的代码。用 class 而不是 id 更改了 div。
    • 问题是我必须将值发布到 php 代码,该代码对这些值进行处理,然后我通过 success: function(msg) 获取修改后的值。不幸的是,您的解决方案不适合我:
    猜你喜欢
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2014-07-30
    • 1970-01-01
    • 2015-08-01
    相关资源
    最近更新 更多