jQuery getter / setter是否有条件?

时间:2011-08-11 20:46:28

标签: php jquery

我有一个脚本需要设置两个json数据调用URL之一,具体取决于单击哪个元素来调用查询。

如何编写url:属性以使其由单击的元素确定?

在我的脑海中,我正在考虑创建一个隐藏的输入字段,并设置一个我可以读取/写入的标志,具体取决于所点击的链接。然后我可以将url:参数包装在if / then

然而,我记得jQuery有一个我可以使用的each()方法。

有什么建议吗?

代码:

<div id='items'>
    Label: 
    <a href='#' id='item1'>Item 1</a>
    <a href='#' id='item2'>Item 2</a>
</div>

jQuery("#items").find("a").each.click(function(){

    jQuery.ajax({contentType: "application/json; charset=utf-8",dataType: "json",

    if(jQuery(this).id = '#item1')
    {
    url: "first url"
    }
    else
    {
    url: "second url"
    }       
});

5 个答案:

答案 0 :(得分:1)

if(this.id == 'item1')
    var url = "first url";
else
    var url = "second url";

然后使用:

{ url: $url }

但至于链接,我建议:

        $.ajax({
            type: 'GET',
            url: $(this).attr('href'),
            success: function(data) {
                ...
            },
        });

喜欢:displaying a spinner when we make an ajax call and waiting for the response and blocking the page

答案 1 :(得分:1)

您可以使用条件运算符:

url: this.id == 'item1' ? "first" : "second",

答案 2 :(得分:1)

您可以使用属性:

<div id='items'>
    Label: 
    <a href='#' id='item1' data-url="page1.html">Item 1</a>
    <a href='#' id='item2' data-url="page2.html">Item 2</a>
</div>

然后使用jQuery data()函数检索它。

jQuery('#items a').click(function(){
    jQuery.ajax({
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        url: $(this).data("url")
     });
});

答案 3 :(得分:0)

由于你使用锚点,我建议给锚点正确的url然后让jQuery获取$(this).attr('href')。

答案 4 :(得分:0)

只需在运行时切换:

<a href="http://www.google.com/" class="link">Item 1</a>
<a href="http://www.bing.com/" class="link">Item 2</a>

然后你的脚本看起来像这样:

$('.link').each(function()
{
     var currentHref = this.href;

     // Unset the value so when people click on it, they dont leave the page
     // jQuery 1.6
     $(this).prop('href', '#');
     // Other Versions
     $(this).attr('href', '#');

     $(this).click(function()
     {
         // Do Ajax Call. The URL of the link is contained within `currentHref` which is contained in this scope via closure. 
     });
});

这样,javascript只是在运行时重新排列链接中包含的数据。