2

jQuery.find() を使用しているときに Corodova 2.5.0 と jQuery 1.8.x / 1.9.1 で問題が発生した人はいますか? find() は空のオブジェクトを返すようです。

これが私の出発点でした:

html

...

<ul id="here">
</ul>

JavaScript

 ..

$('#here').append('<li data-test="test1">first</li>');
$('#here').append('<li data-test="test2">second</li>');
$('#here').append('<li data-test="test3">third</li>');

var lis = $('#here').find('li');
console.log(lis);
$.each(lis, function (ind, rec) {
    console.log(rec);
});

コンソールの表示:

log: {}
log: {}
log: {}

デスクトップブラウザで同じコードが完全に機能します-コルドバなし:)

4

1 に答える 1

0

「li」要素が実際に追加されているにもかかわらず、WP8 上の IE10 は「rec」オブジェクトの内容を出力できないと思います。jQuery(v1.7.1)を使用してCordova(v2.4.0)Windows Phone 8アプリを試してみましたが、以下のコードで問題なく動作するようです

$.each(lis, function (ind, rec) {
    console.log(rec.innerHTML.toString());
});

出力は次のとおりです。

ScriptNotify :: first
ScriptNotify :: second
ScriptNotify :: third

代わりに outerHTML を実行すると、次のように出力されます。

ScriptNotify :: <li data-test="test1">first</li>
ScriptNotify :: <li data-test="test2">second</li>
ScriptNotify :: <li data-test="test3">third</li>

index.html からの完全なコード:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <title>Hello World</title>
    </head>
    <body>
        <div class="app">
            <h1>Apache Cordova</h1>
            <ul id="here">
            </ul>
        </div>
      <script type="text/javascript" src="lib/jquery-1.7.1.js"></script>
      <script type="text/javascript" src="cordova-2.4.0.js"></script>
      <script>
        window.console = {
        log: function (str) { window.external.Notify(str); }
        };

        $('#here').append('<li data-test="test1">first</li>');
        $('#here').append('<li data-test="test2">second</li>');
        $('#here').append('<li data-test="test3">third</li>');

        var lis = $('#here').find('li');
        console.log(lis.length.toString());
        $.each(lis, function (ind, rec) {
        console.log(rec.outerHTML.toString());
        });
      </script>
    </body>
</html>
于 2013-04-16T17:46:55.573 に答える