我无法读取从我的编辑方法中动态添加的内容。这些行是动态添加的,行包含带有Id的span。我试图从另一个jquery方法读取跨度的内容。这两种方法都在下面给出。
function AddQuestionChoice() {
var table = $("#questionOptionsTable");
var index = $('#questionOptionsTable tr').length - 1;
var choiceSequenceNo = $("#choiceSequenceNo").val();
var choiceText = $("#choiceText").val();
if (!$("#choiceSequenceNo").val())
{
alert("Enter sequence number");
return;
}
if (!$("#choiceText").val())
{
alert("Enter choice");
return;
}
if (!$.isNumeric(choiceSequenceNo))
{
alert("Enter valid sequence number.")
return;
}
var row = "<tr bgcolor='#fff'><td id='choiceDiv[" + index + "]'> <span name= 'eventSurveyQuestion.Sequences[" + index + "]' id='eventSurveyQuestion.Sequences[" + index + "]'>" + choiceSequenceNo + "</span> </td><td> <span name='eventSurveyQuestion.Options[" + index + "]' id='eventSurveyQuestion.Options[" + index + "]'>" + choiceText + "</span> </td>" +
"<td><a href='javascript:EditQuestionChoice(" + index + ");'><img src='/Content/themes/Default/images/action1.png'></a> <a href='javascript:RemoveQuestionChoice(" + index + ");'><img src='/Content/themes/Default/images/action2.png'></a></td></tr>";
$('#questionOptionsTable').append(row);
var length = $('#questionOptionsTable tr').length;
$("#choiceSequenceNo").val(length);
$("#choiceText").val('');
}
function EditQuestionChoice(index)
{
var sequenceNumber = $("#eventSurveyQuestion.Sequences["+index + "]").text();
alert(sequenceNumber);
var choiceText = $("#eventSurveyQuestion.Options["+ index +"]").text();
$("#choiceSequenceNo").val(sequenceNumber);
$("#choiceText").val(choiceText);
}
答案 0 :(得分:1)
text
是一个jquery函数而不是属性,使用$("#someId").text()
来获取span的值。
确保已加载jquery且代码在ready
函数内:
$(document).ready(function(){
var row= "<tr><td><span id='someId'>spancontent</span></td></tr>";
$('#table').append(row);
$('#rowText').click(function(){
alert($("#someId").text());
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table" border="1"></table>
<a href="#" id="rowText">View row text</a>
&#13;
答案 1 :(得分:0)
我认为问题是在jQuery中,点(。)是为类名保留的。所以你的跨度有一个问题:
"#eventSurveyQuestion.Sequence[..."
使用时:
var choiceText = $("#eventSurveyQuestion.Options["+ index +"]").text();
jQuery将寻找&#34;#eventSurveyQuestion&#34;用&#34; .Sequence&#34; class,而不是id#34;#eventSurveyQuestion.Sequence&#34;。
尝试改为(使用转义规则):
var choiceText = $("#eventSurveyQuestion\\.Options\\["+ index +"\\]").text();
注意:您需要转义所有有问题的字符:。 [和]
请在此处查看证据:jsfiddle
请参阅此处的说明:jQuery dot in ID selector