$('#id')。attr();询问

时间:2016-12-18 04:24:30

标签: jquery

         <li class="nav-item">
              <a class="btn btn-xs bg-primary">
                  <i class="fa fa-users" aria-hidden="true" tabindex="0"  data-toggle="friendRequest"  data-placement="bottom" data-trigger="focus" title="Friend Request" data-content="And here's some amazing content. It's very engaging. Right?" id="friendRequestPopover"></i>
               </a>
               <span class="counter" id="requests"></span>
        </li>
       <!--in above code i have to show popover like fb popovers-->
        data=0;
        $.ajax({
            url:"selectRequests.php",
            type:"post",
            data:data,
            success : function(response){
                    var data=JSON.parse(response);
                    if (data==0) {
                        $('#requests').hide();
                    }else{
                        $('#requests').append(Object.keys(data).length);
                        $( "#friendRequestPopover" ).attr("data-content", "awais");
                        $( "#friendRequestPopover" ).attr("data-content", "ahmad");
                    }
                },error : function(jqXHR, textStatus, errorThrown){
                    //$("#requests").html(errorThrown + textStatus);
                }
            });

当我添加$(&#34; #friendsRequestPopover&#34;)。attr(&#34; data-content&#34;,&#34; ahmad&#34;);它用&#34; ahmad&#34;替换数据内容。我如何连接&#34; awais&#34;和#34;艾哈迈德&#34;? 当我json回复时,我会在数据内容中逐个添加好友请求。这就是我尝试添加两个attr();的原因。

4 个答案:

答案 0 :(得分:2)

jQuery的.attr()方法没有自动组合给定值的选项。您必须提供自己的连接代码/说明。

1)如果你知道要同时组合的两个值,你应该能够在设置属性之前连接它们:

$( "#friendRequestPopover" ).attr("data-content", "awais" + "ahmad");

2)如果他们实际上被设置在您的代码中的不同位置,至少其中一个位置,您需要在添加之前确定当前值。为此,您可以使用.attr()方法option for providing an iterator function,它将接收当前值作为参数。

$( "#friendRequestPopover" ).attr("data-content", "awais");

$( "#friendRequestPopover" ).attr("data-content", function (i, currentValue) {
    return currentValue + "ahmad";
});

答案 1 :(得分:0)

你可以做几个选择。

使用不同的数据属性:

$("#friendRequestPopover").attr("data-firstname", "awais");
$("#friendRequestPopover").attr("data-lastname", "ahmad");

console.log( $("#friendRequestPopover").data('firstname') + ' ' + $("#friendRequestPopover").data('lastname') ); // awais ahmad

连接现有属性:

$("#friendRequestPopover").attr("data-content", "awais");
$("#friendRequestPopover").attr("data-content", $(this).data('content') + " ahmad");

console.log( $("#friendRequestPopover").data('content') ); // awais ahmad

答案 2 :(得分:0)

Var data=$("#friendRequestPopover" ).attr("data-content")
data=data+"ahmad"

$( "#friendRequestPopover" ).attr("data-content",data)

应该这样做!!

答案 3 :(得分:0)

如果是data-attribute,则可以使用获取data-attribute的内容 $(&#34;#friendRequestPopover&#34;)。data(&#34; content&#34;)这为您提供当前数据 并使用&#39; +&#39;添加到ahmad并使用$(&#34; #friendsRequestPopover&#34;)。数据(&#34; content&#34;,newContent)将其设置回来

检查此代码段

&#13;
&#13;
var existingRequest = $("#friendRequestPopover").data("content");
var content = existingRequest + "ahmad"
$("#friendRequestPopover").data("content", content);
console.log($("#friendRequestPopover").data("content"));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-content="awaiz" id="friendRequestPopover">
</div>
&#13;
&#13;
&#13;

希望这有帮助