JQuery - Как вы храните и получаете доступ к объекту в другом объекте - PullRequest
1 голос
/ 01 марта 2010

Я пытаюсь сохранить объект как атрибут в другом объекте, но не могу получить к нему доступ. Возможно ли это?

<script language="javascript">

  $(document).ready(function() {

    //create a TestObject
    function TestObject() {

      this.testProperty = "green";
    }

    //and an instance of it
    var testObject = new TestObject();

    //attach this instance to the div as a property
    //if it could be attached another way perhaps that's the answer??
    $('#test').attr("obj", testObject);

    alert(testObject.testProperty);//works - obviously
    alert($('#test').attr("obj").testProperty); //does not work

    var o = $('#test').attr("obj");
    alert(o.testProperty); //does not work

  });

</script>

<body>

<form id="form1" runat="server">
<div id="test">Here is a test div</div>
</form>

</body>

Ответ: Ребята ниже поняли это правильно

$(document).ready(function() {

//create a TestObject
function TestObject() {
  this.testProperty = "green";
}

//and an instance of it
var testObject = new TestObject();

//attach this instance to the div as a property
var test;
test = $('#test');
jQuery.data(test, "obj", testObject);

alert(testObject.testProperty); //works - obviously
alert(jQuery.data(test, "obj").testProperty); //works!!


});

Ответы [ 3 ]

1 голос
/ 01 марта 2010

Использование функции jQuery attr сохраняет переменную в качестве атрибута элемента. Если вы хотите сохранить что-то более сложное, чем строка, используйте .data

1 голос
/ 01 марта 2010
Атрибут

предназначен для хранения текста, а не объекта JavaScript, используя jquery, вы можете использовать .data вместо

1 голос
/ 01 марта 2010

Использовать data () вместо attr ();)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...