Как я могу сделать мои переменные видимыми за пределами их диапазона? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть функция с некоторыми переменными, и я хочу сделать ее видимой вне этой функции, но консоль не распознает ее

<b:tag name='script' type='text/javascript'>

(function(){var snapAuthor=AuthorsInfo.filter(function(a){return a.name===&#39;<data:title/>&#39;})[0];

    if(snapAuthor!==undefined){
    snapAuthor.provided=true;

    <b:loop values='data:links' var='link'>
    <b:if cond='data:link.name contains &quot;-ad&quot;'>snapAuthor[&#39;<data:link.name/>&#39;]=&#39;<data:link.target.jsEscaped/>&#39;;
    <b:else/>
    <b:switch var='data:link.name'>
    <b:case value='rank'/>snapAuthor.rank=&#39;<data:link.target.escaped/>&#39;;
    <b:case value='about'/>snapAuthor.about=&#39;<data:link.target.escaped/>&#39;;
    <b:default/>snapAuthor.links[&#39;<data:link.name/>&#39;]=&#39;<data:link.target/>&#39;;
    </b:switch></b:if></b:loop>}})();</b:tag>

, и это функция возврата:

$("#Auth-Sec .LinkList").each(function(){
var e = $(this);
var getName= e.find(snapAuthor.name); // snapAuthor is not defined
if (getName=== AuthorName){
$("body").hide();
}
console.log(getName);
});

Обратите внимание на имя переменной snapAuthour. Мне нужен способ сделать ее видимой, оставаясь на месте, и спасибо <3 </p>

1 Ответ

0 голосов
/ 01 апреля 2020

Я пытаюсь сделать exmaple, но, наконец, не вижу структуры dom:


let snapAuthorList = {};

// there's LinkList class?
// <div class="LinkList">...

<b:tag name='script' type='text/javascript'>

    // you must get somu unique ID there
    var currentBlockID = 1;

    (function() {

        var snapAuthor=AuthorsInfo.filter(function(a) {
            return a.name==="<data:title/>"
        })[0];
        // js undefined is type
        if(typeof snapAuthor !== "undefined") {

            snapAuthorList[currentBlockID] = snapAuthor;
            snapAuthor.provided=true;

            // pass currentBlockID into dom,
            <b:tag name="div" data-id="__currentBlockID__" class="LinkListId">
            <b:loop values='data:links' var='link'>
                <b:if cond='data:link.name contains &quot;-ad&quot;'>snapAuthor["<data:link.name/>"]="<data:link.target.jsEscaped/>";
                    <b:else/>
                    <b:switch var='data:link.name'>
                        <b:case value='rank'/>
                        snapAuthor.rank="<data:link.target.escaped/>";
                        <b:case value='about'/>
                        snapAuthor.about="<data:link.target.escaped/>";
                        <b:default/>
                        snapAuthor.links["<data:link.name/>"]="<data:link.target/>";
                    </b:switch>
                </b:if>
            </b:loop>
            </b:tag>
        }
    })();
</b:tag>


// </div>

...
...
...


// some nested scope
<script>
{
    { //

        var currentBlockID = $("#Auth-Sec .LinkList .LinkListId").data('id'); // this may be in each loop if on child block

        $("#Auth-Sec .LinkList").each(function() {
            var e = $(this);
            if (typeof snapAuthorList[currentBlockID] !== "undefined") {

                var snapAuthor = snapAuthorList[currentBlockID];
                var getName = e.find(snapAuthor.name);

                if (getName === AuthorName) {
                    $("body").hide();
                }
                console.log(getName);
            }
        });
    }
}
</script>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...