从动态创建的按钮获取文本值jquery

时间:2016-02-10 05:25:01

标签: javascript jquery google-apps-script

所以我基于从generateFolderTree函数返回的数组值动态地向表添加按钮,问题是我似乎无法获取单击按钮的文本值,甚至在我单击创建时获取任何事件纽扣。如何获得单击按钮的名称?代码如下......谢谢

Jquery的

   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function(){
$("#selectFolder").click(runMyFunction);
});
function runMyFunction(){
google.script.run
.withSuccessHandler(successCallback)
.withFailureHandler(showError)
.generateFolderTree();
 $("#hiddenAttrib").hide();
}

function showError(error) {
    console.log(error);
    window.alert('An error has occurred, please try again.');
  }
  function successCallback(returnedArray)
  {
    console.log("returnedArray" + returnedArray);
    var folders = returnedArray;
   console.log("folders" + folders);
    var i = 0;
    //row;
    for( i=0; i<folders.length;i++)
    {
       console.log("i = " + i);
   var row = $('<p><tr><button class = "selectedFolder">' + folders[i] + '</button></tr></p>');
    $("#source").append(row.html());
    }
  }
 $(".selectedFolder").click(function () {
var text = $(this).text();
console.log(text);
$("#dialog-status").val(text);
}); 


</script>

Show.html

   <!-- USe a templated HTML printing scriphlet to import common stylesheet. -->
<?!= HtmlService.createHtmlOutputFromFile("Stylesheet").getContent(); ?>
<!-- Use a templated HTML printing scriptlet to import JavaScript. -->

<div>
<div class = "block" id = "dialog-elements">
<button class = "selectFolder" id = "selectFolder" >Select a Folder</button>
</div>
<!-- This block is going to be hidden until the user selects a folder -->
<div class = "block" id = "hiddenAttrib">
<p><label for = "SelectedFolder"> Selected Folder: </label></p>
<p><label id = "foldername"> Folder Name: </label></p>
<p><label id = "folderid"> Folder ID: </label></p>
</div>
<div class = "folderTable" id = "folderTable">
<p><label class = "showStatus" id = "dialog-status">Selected Folder: </label></p>
<table style = "width:100%" id = "source">

</table>


</div>

</div>
<!-- Use a templated HTML printing scriptlet to import JavaScript. -->
<?!= HtmlService.createHtmlOutputFromFile('ShowJavaScript').getContent(); ?>

3 个答案:

答案 0 :(得分:1)

 $('document').on('click', '.selectedFolder', function () {

            alert($(this).text())
        });

答案 1 :(得分:0)

将这段代码放在$(document).ready

$(".selectedFolder").click(function () {
var text = $(this).text();
console.log(text);
$("#dialog-status").val(text);
}); 

答案 2 :(得分:0)

使用

$(ELEMENT/CLASS/ID).on('click', function(){});

而不是

$(ELEMENT/CLASS/ID).click

click()函数在我们使用live()附加动态创建元素的事件之前不会动态考虑添加到DOM的元素,但由于live()被折旧,我们应该使用on()

on()充当live()

相关问题