Javascript 获取<;a>;从一个函数到另一个函数的标记
我对javascript/jQuery非常陌生,所以如果我的问题对您来说太简单,对我来说太难,请耐心等待。Javascript 获取<;a>;从一个函数到另一个函数的标记,javascript,jquery,html,json,ajax,Javascript,Jquery,Html,Json,Ajax,我对javascript/jQuery非常陌生,所以如果我的问题对您来说太简单,对我来说太难,请耐心等待。 这是一个函数,我只是不发布完整的代码,因为它太长了 我还有另外一个函数,它也有一个ajax,我想通过它来获取标记的ID: function someName() { jQuery.ajax({ type: 'POST', url: 'thisisprivate.aspx', data: { action: 'MyAction', word
这是一个函数,我只是不发布完整的代码,因为它太长了 我还有另外一个函数,它也有一个ajax,我想通过它来获取
标记的ID:
function someName() {
jQuery.ajax({
type: 'POST',
url: 'thisisprivate.aspx',
data: {
action: 'MyAction',
word: 'Wednesday',
count: '4',
page: '1'
},
success: function(data) {
var json = jQuery.parseJSON(data);
var htmlInfo = '';
for (i = 0; i < json.length; i++) {
var htmlCode = '<a href="#/app/video?id=' + json[i].bcid + json[i].name + '" class="list" id="' + json[i].bcid + '"></a>';
htmlInfo = htmlInfo + htmlCode;
}
jQuery('#WMVideoxx').html(htmlInfo);
}
});
}
试试这个:您可以在创建
a
标记时单击调用它,并传递这个
对象,它只不过是a
标记元素,请参见下面的代码
var htmlCode = '<a href="#/app/video?id='+json[i].bcid+json[i].name+'" class="list" id="'+ json[i].bcid +'" onclick="VideoDiv(this)"></a>';
注意:上述ajax调用中的数据属性不完整,请更正。尝试以下操作:您可以在创建标记时单击调用
a
标记,并传递此
对象,该对象只不过是a
标记元素,请参见下面的代码
var htmlCode = '<a href="#/app/video?id='+json[i].bcid+json[i].name+'" class="list" id="'+ json[i].bcid +'" onclick="VideoDiv(this)"></a>';
注意:上述ajax调用中的数据属性不完整,请更正。您所做的是:
jQuery('a').click(function() {
VideoDiv(jQuery(this).attr('id'));
});
这将不起作用,因为的性质(有关详细信息):
上面的代码可以工作,但是对于所有的来说,最好使用this.id
获取id
:
jQuery(".static-parent").on("click", '.class', function () {
VideoDiv(this.id);
});
以上是最好的代码
此外,再次指出,为了获得更好的性能,您可以将代码替换为:
setTimeout(
(function () {
VideoDiv(this.id);
}).bind(this), 10
);
这将让jQuery处理下一个偶数处理程序,并在接下来的10毫秒内(如果可用)执行此代码。您要做的是:
jQuery('a').click(function() {
VideoDiv(jQuery(this).attr('id'));
});
这将不起作用,因为的性质(有关详细信息):
上面的代码可以工作,但是对于所有的来说,最好使用this.id
获取id
:
jQuery(".static-parent").on("click", '.class', function () {
VideoDiv(this.id);
});
以上是最好的代码
此外,再次指出,为了获得更好的性能,您可以将代码替换为:
setTimeout(
(function () {
VideoDiv(this.id);
}).bind(this), 10
);
这将让jQuery处理下一个偶数处理程序,并在接下来的10毫秒内(如果可用)执行此代码。使用onclick=“function();”
,并传递函数中所需的参数
function VideoDiv(id)
{
//your ajax goes here
}
你的HTML代码应该是这样的
你的VideoDiv功能
function VideoDiv(id)
{
//your ajax goes here
}
将onclick=“function();”
与锚点一起使用,并在函数中传递所需的参数
function VideoDiv(id)
{
//your ajax goes here
}
你的HTML代码应该是这样的
你的VideoDiv功能
function VideoDiv(id)
{
//your ajax goes here
}
传递id,如VideoDiv(id)
您在第一个ajax调用中生成了多个a
标记,您想在下一个ajax调用中传递哪一个标记?请参阅如何传递变量。@BhushanKawadkar哦,是的,我忘了包含,我想在单击标记时传递id,我该怎么做。。对不起,我真的很抱歉newbie@JCBorlagdan您没有在任何地方调用函数VideoDiv()
。你真的在调用它吗?像VideoDiv(id)
那样传递id你在第一个ajax调用中生成了多个a
标记,你想在下一个ajax调用中传递哪一个标记?看看如何传递变量。@BhushanKawadkar哦,是的,我忘了包含,我想在单击标记时传递id,我该怎么做。。对不起,我真的很抱歉newbie@JCBorlagdan您没有在任何地方调用函数VideoDiv()
。你真的这么叫吗?啊,伙计,小错误。你想更正还是我来更正?@JCBorlagdan看起来代码中有错误,伙计。@PraveenKumar,你是在说ajax调用中的数据吗?如果是的话,那么我已经在我的答案中加了注释。无论如何,谢谢:)是的,这里不完整,但在我的文档中是完整的,正如我在帖子中所说,我没有发布完整的代码,因为我只是指出了我的问题:)嗯,点击我的标签仍然不起作用。。我将尝试其他解决方案,但非常感谢您的快速回复,先生@BhushanKawadkarAh man,小错误。你想更正还是我来更正?@JCBorlagdan看起来代码中有错误,伙计。@PraveenKumar,你是在说ajax调用中的数据吗?如果是的话,那么我已经在我的答案中加了注释。无论如何,谢谢:)是的,这里不完整,但在我的文档中是完整的,正如我在帖子中所说,我没有发布完整的代码,因为我只是指出了我的问题:)嗯,点击我的标签仍然不起作用。。我将尝试其他解决方案,但非常感谢您的快速回复,先生@BhushanKawadkarDon,不要这样做!!!只需执行这个.id
。请不要浪费处理时间和磁盘空间来获取单个id
。请仅仅因为jQuery是可用的,并不意味着你必须一直使用它。非常感谢!我们都会很感激这个小小的建议。为了使它稍微好一点,在没有很多好处的情况下,可以使用setTimeout((function(){VideoDiv(this.id);}).bind(this),10)代码>。这将让jQuery处理下一个偶数处理程序,并在接下来的10毫秒内(如果可用)执行此代码。@IsmaelMiguel我不明白。setTimeout
有什么作用?@IsmaelMiguel我信任你,并添加了它。谢谢!:)我不久前就学会了。记住,如果VideoDiv()
是一个缓慢的函数,并且需要很长时间才能完成,那么我向您展示的技巧将更加有用。它允许jQuery处理所有其他事件处理程序(例如,更改背景),只有这样它才会运行VideoDiv()
。这可以防止浏览器被锁定。不要这样做!!!只需执行这个.id
。请不要浪费处理时间和磁盘空间来获取单个id
。请仅仅因为jQuery是可用的,并不意味着你必须一直使用它。非常感谢!我们都会很感激这个小小的建议。为了使它稍微好一点,在没有很多好处的情况下,可以使用setTimeout((function(){VideoDiv(this.id);}).bind(this),10)代码>。这将让jQuery处理下一个偶数处理程序,并在接下来的10毫秒内(如果可用)执行此代码。@IsmaelMiguel我不明白。setTimeout
有什么作用?@IsmaelMiguel我信任你,并添加了它。谢谢!:)我一年前很短时间就学会了