我正在尝试使用jquery从隐藏文本字段中获取值,但没有成功。 这是javascript函数,它动态地向页面添加html。
function(lng,lat)
{
document.getElementsByClassName("BranchDetails").item(0).innerHTML+=""
+" <div class='Branches'>"
+" <div class='DeleteIcon'><img src='../Images/deleteicon.png' width='15' height='15'></div>"
+" <div class='BranchName'>"
+" <div class='CompanyBranchNameText'>"
+" Company Name"
+" </div>"
+" <div class='EditCompanyBranchName'>"
+" <label>Company Name:</label><input type='text' class='EditNameText' >"
+" <input type='hidden' class='longitudeVal' value='"+lng+"' /><input type='hidden' class='latitudeVal' value='"+lat+"' />"
+" </div>"
+" <a href='javascript:void(0)' class='EditNameLink'><p>edit...</p></a>"
+" </div>"
+" </div>";
}
现在我想获取隐藏文本字段的值。 到目前为止,我所做的是。
$('.Branches').children('.DeleteIcon').click(
function()
{
alert($(this).siblings('.EditCompanyBranchName').children('.longitudeVal').val());
}
);
但这会给我一个未定义的值。 lng和lat值成功地放入隐藏字段中,我使用警告框检查它。
答案 0 :(得分:4)
问题是因为.EditCompanyBranchName
不是.DeleteIcon
的兄弟姐妹 - 它是一个孩子。试试这个:
$('.Branches').children('.DeleteIcon').click(function() {
var long = $(this).parent().find('.longitudeVal').val();
var lat = $(this).parent().find('.latitudeVal').val();
alert(long);
alert(lat);
});
这会在与.logitudeVal
相同的.latitudeVal
元素中找到.Branches
和.DeleteIcon
字段。
答案 1 :(得分:0)
为简化您的javascript点击事件,您可以使用唯一ID设置隐藏输入,并使用Jquery将该ID作为目标:
在您的功能上(lng,lat)
...
<input type='hidden' id="Jquery_latitude" class='latitudeVal' value='"+lat+"' />
...
现在为'.DeleteIcon'点击活动:
$('.Branches').children('.DeleteIcon').live("click", function() {
var lat = $('#Jquery_latitude').val();
alert(lat);
});
备注:强> 我已使用.live()设置此点击事件,以允许它可用于动态创建的元素。