因为我想在这些函数中使用类而不是id(我有三个相同的函数,我想要不同的东西.append)我确信我需要把$(this)放在那些函数的某个地方才能触发按钮单击时只有一个功能,而不是全部三个。但我不确定因为我是jquery / js的初学者,所以我会很感激一些帮助。
$(document).ready(function () {
$(".onclick").click(function () {
$('#favorites').append('<div data-role="main"class="ui-content"><div class="ui-grid-b"><div class="ui-block-a">Arrow</div><div class="ui-block-b">More Info</div><div class="ui-block-c">Unfavorite</div></div></div>');
});
});
http://codepen.io/anon/pen/JYxqEw - HTML和Jquery代码
答案 0 :(得分:1)
public class MaxConccurrentMiddleware : OwinMiddleware
{
private readonly int maxConcurrentRequests;
private int currentRequestCount;
public MaxConccurrentMiddleware(int maxConcurrentRequests)
{
this.maxConcurrentRequests = maxConcurrentRequests;
}
public override async Task Invoke(IOwinContext context)
{
try
{
if (Interlocked.Increment(ref currentRequestCount) > maxConcurrentRequests)
{
var response = context.Response;
response.OnSendingHeaders(state =>
{
var resp = (OwinResponse)state;
resp.StatusCode = 429; // 429 Too Many Requests
}, response);
return Task.FromResult(0);
}
await Next.Invoke(context);
}
finally
{
Interlocked.Decrement(ref currentRequestCount);
}
}
}
选择类$('.onclick')
的所有元素。这意味着,只要点击onclick
的某个内容,该功能就会触发。
如果您希望所有这些元素都将精确的HTML附加到class="onclick"
元素,那么您可以按原样保留代码。
但是,如果您尝试做的是将html附加到单击的元素,即当您使用#favorites
时 - 选择您使用jQuery单击的元素,那么你可以直接追加到那个元素,即:
$(this)
修改强>
所以要将每个$(document).ready(function () {
$(".onclick").click(function () {
// this will append the HTML to the element that triggered the click event.
$(this).append('<div data-role="main"class="ui-content"><div class="ui-grid-b"><div class="ui-block-a">Arrow</div><div class="ui-block-b">More Info</div><div class="ui-block-c">Unfavorite</div></div></div>');
});
});
的内容插入.onclick
,您需要使用DOM节点的#favorites
值。示例小提琴:
http://jsbin.com/qazepubuzu/edit?html,js,output
当您使用jQuery选择某些内容时,您实际上不仅会返回DOM节点,还会返回jQuery对象 - 此对象包含对实际DOM节点(innerHTML
)的引用,如以及jquery对象([0]
)。
因此,要选择带有[1]
的DOM节点,请定位节点:$(this)
。然后,您可以使用$(this)[0]
获取节点的HTML内容并按照您的喜好进行操作。
最终结果:
.innerHTML()
答案 1 :(得分:0)
所以构建块并不复杂,但我认为你是一个新手jQuery开发人员,所以你可能还不清楚jQuery和JS之间的区别。
$(selector, context)
允许我们为CSS selector
创建一个jQuery集合,它是当前context
DOM节点的子节点,但是如果你没有指定一个,那么就有一个自动节点(我认为是document.body
)。迭代jQuery集合的各种函数使得特定元素在JavaScript中可用作this
。要从HTML片段中的strong
元素到达.onclick
元素,您需要在层次结构中向上移动,然后到达相应的元素。然后,我们可以从元素中收集文本。我们可以在JS或jQuery中执行此操作。
只需使用jQuery执行此操作:
// AP style title case, because Chicago is too crazy.
var to_title_case = (function () { // variable scope bracket
var lower_case = /\b(?:a|an|the|and|for|in|so|nor|to|at|of|up|but|on|yet|by|or)\b/i,
first_word = /^(\W*)(\w*)/,
last_word = /(\w*)(\W*)$/;
function capitalize(word) {
return word.slice(0, 1).toUpperCase() + word.slice(1).toLowerCase();
}
function capitalize_mid(word) {
return lower_case.exec(word) ? word.toLowerCase() : capitalize(word);
}
return function to_title_case(str) {
var prefix = first_word.exec(str),
str_minus_prefix = str.slice(prefix[0].length),
suffix = last_word.exec(str_minus_prefix),
center = str_minus_prefix.slice(0, -suffix[0].length);
return prefix[1] + capitalize(prefix[2]) + center.replace(/\w+/g, capitalize_mid)
+ capitalize(suffix[1]) + suffix[2];
};
})();
$(document).ready(function() {
$(".onclick").click(function () {
var text = $(this).parents('.ui-grid-a').find('.ui-block-a').text();
var html = '<div data-role="main"class="ui-content">'
+ '<div class="ui-grid-b"><div class="ui-block-a">'
+ to_title_case(text) + '</div><div class="ui-block-b">More Info</div>'
+ '<div class="ui-block-c">Unfavorite</div></div></div>';
$("#favorites").append(html);
});
});