0

我在 asp.net mvc4 应用程序中有这个标记。

<div style="margin-top: 35px; margin-right: 10px; padding-left:2px; border: solid 1px #DCE8E8; height:230px;">
                        We are located at 
                        <span id="txtPhysicalAdd"/><br />
                        <div><span id="txtPostalAdd"/><br /></div>
                        <div>Phone#<br /></div>
                        <div><span id="txtMobile1_2"/><span id="txtMobile2"/><br /></div>
                        <span id="txtTown"/><br />
                        <span id="txtTelephone1"/><br />
                        <label id="txtCountry"/><br />
                        <a href="@Url.Content("~/site/Contact/ContactUs")"><span id="txtEmail"/></a>
                        <br />
                    </div>

在左侧导航面板中,我想设置联系信息。它在 _layout.cshtml 中,因此使用了这个 JQuery 片段。

 $(document).ready(function () { 
var url = '@Url.Action("GetPrimaryContact","Contact")';
        $.ajax({
            type: "POST",
            url: url,
            success: function(returndata) {
    if (returndata.ok) {
                        var physicalAdd = returndata.data.PhysicalAddress;
                        var postalAdd = returndata.data.PostalAddress;
                        var mobile1 = returndata.data.Mobile1;
                        var mobile2 = returndata.data.Mobile2;
                        var telephone1 = returndata.data.Telephone1;
                        var town = returndata.data.City;
                        var country = returndata.data.SelectedCountryName;
                        var email = returndata.data.Email;
                        $('#txtPhysicalAdd').text(physicalAdd);
                        $('#txtPostalAdd').text(postalAdd);
                        $('#txtMobile1').text(mobile1);
                        $('#txtMobile1_2').text(mobile1);
                        $('#txtMobile2').text(mobile2);
                        $('#txtTown').text(town);
                        $('#txtTelephone1').text(telephone1);
                        $('#txtCountry').text(country);
                        $('#txtEmail').text(email);
                        //window.alert(' email : ' + mobile2);
                }
                else {
                    window.alert(' error : ' + returndata.message);
                }
            }
        });

问题是在运行它时它只填充这样的第一个值,当我看到 Firebug-inspect 元素时

<div style="margin-top: 35px; margin-right: 10px; padding-left:2px; border: solid 1px #DCE8E8; height:230px;">
We are located at
<span id="txtPhysicalAdd">Kahawa wendani opposite Kahawa Garrison</span>
</div>

如果我评论 JQuery 中的任何字段,则剩余的第一个被填充,其余的被忽略。此外,如果我有另一个字段,例如在页眉中,它被映射但在我上面的 div 中被忽略。请协助。:)

4

2 回答 2

1

ID 必须是唯一的。

http://www.w3.org/TR/html401/struct/global.html#h-7.5.2

属性定义

id = name [CS] 此属性为元素分配名称。此名称在文档中必须是唯一的。

有不同的方法可以解决您的问题。一个简单的方法是为控件提供相同的类名,然后使用类选择器。看到这个小提琴:http: //jsfiddle.net/TtcAY/

$('#btn').click(
  function() 
    {
        $('.mobile').val('212 867 5309');
        $('.country').val('Wottsamattau');
    });
于 2013-06-06T13:23:17.173 回答
0

我用 p 代替 span 和 div 的段落,效果很好。

于 2013-06-06T14:13:45.393 回答