jquery中的引号问题

时间:2017-07-26 12:11:42

标签: jquery

我已经使用此函数来检索列表视图内容的xml:

function xmlParser(data) {
            xml = data;

            $('#load').fadeOut();

            $(xml).find("item").each(function () {

                var title = $(this).find("title").text();
                var description = $(this).find("description").text();

            $("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button onclick="window.plugins.socialsharing.share('+"'description'"+')">share!</button></li>');
        });
        $('#list').listview('refresh');
    }

在内容之后,显示按钮共享,但是当我点击时,它会显示&#39; description&#39;而不是变量的内容(文本)。 我想我的报价&#39;和&#34;是错位的,但我无法解决它。 一些帮助将被贬低。

2 个答案:

答案 0 :(得分:2)

问题是因为变量名称周围的引号导致它被解释为字符串文字。您需要更改语法:

$("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button onclick="window.plugins.socialsharing.share(\''+ description + '\')">share!</button></li>');

更好的做法是将description放在data属性中,并使用不引人注目的JS而不是过时的click事件属性挂钩on*事件处理程序:

function xmlParser(data) {
  xml = data;
  $('#load').fadeOut();
  $(xml).find("item").each(function () {
    var title = $(this).find("title").text();
    var description = $(this).find("description").text();
    $("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button data-description="' + description + '">share!</button></li>');
  });
  $('#list').listview('refresh');
}

$('#list').on('click', 'li button', function() {
  window.plugins.socialsharing.share($(this).data('description'));
});

答案 1 :(得分:-2)

                      $("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button onclick="window.plugins.socialsharing.share("' + description + '")">share!</button></li>');
            });
            $('#list').listview('refresh');
        }

尝试这个。

我只更新了这一行。

 $("#list").append('<li><h2>' + title + '</h2><font style="white-space:normal; font-size: x-small;">' + description + '</font><br/><button onclick="window.plugins.socialsharing.share("' + description + '")">share!</button></li>');